Changeset 22
- Timestamp:
- 05/28/14 16:11:25 (10 years ago)
- Location:
- trunk/src/scripts_Laura
- Files:
-
- 3 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/scripts_Laura/read_SSMIS_test.py
r21 r22 323 323 324 324 325 ######################## 326 # EVOLUTION TEMPORELLE # 327 ######################## 328 329 ## ZONE1 = Autour de "Dome C" (lon=123.23;lat=-75.06) - mois: JUNE ## 330 ## ch17 ## 331 #bbzone_CH17_JUN = nonzero((lon17_JUN >= 120.23) & (lon17_JUN <= 126.23) & (lat17_JUN >= -78.06) & (lat17_JUN <= -72.06)) 332 333 ## ch18 ## 334 #bbzone_CH18_JUN = nonzero((lon18_JUN >= 120.23) & (lon18_JUN <= 126.23) & (lat18_JUN >= -78.06) & (lat18_JUN <= -72.06)) 335 336 337 ## ZONE2 = Autre zone de glace de mer / de continent (lon entre -40 et -60 // lat entre -75 et -85) ## 338 ## ch17 ## 339 bbzone_CH17_FEB = nonzero((lon17_FEB >= -60.) & (lon17_FEB <= -40.) & (lat17_FEB >= -85.) & (lat17_FEB <= -75.)) 340 bbzone_CH17_APR = nonzero((lon17_APR >= -60.) & (lon17_APR <= -40.) & (lat17_APR >= -85.) & (lat17_APR <= -75.)) 341 bbzone_CH17_MAY = nonzero((lon17_MAY >= -60.) & (lon17_MAY <= -40.) & (lat17_MAY >= -85.) & (lat17_MAY <= -75.)) 342 bbzone_CH17_JUN = nonzero((lon17_JUN >= -60.) & (lon17_JUN <= -40.) & (lat17_JUN >= -85.) & (lat17_JUN <= -75.)) 343 bbzone_CH17_JUL = nonzero((lon17_JUL >= -60.) & (lon17_JUL <= -40.) & (lat17_JUL >= -85.) & (lat17_JUL <= -75.)) 344 345 ## ch18 ## 346 #bbzone_CH18_JUN = nonzero((lon18_JUN >= -60.) & (lon18_JUN <= -40.) & (lat18_JUN >= -85.) & (lat18_JUN <= -75.)) 347 348 ## ch 16 ## 349 #bbzone_CH16_JUN = nonzero((lon16_JUN >= 120.23) & (lon16_JUN <= 126.23) & (lat16_JUN >= -78.06) & (lat16_JUN <= -72.06)) 350 351 352 ## FEBUARY ## 353 emis17_FEB_moy = np.zeros([28],float) 354 tb17_FEB_moy = np.zeros([28],float) 355 ts17_FEB_moy = np.zeros([28],float) 356 orog17_FEB_moy = np.zeros([28],float) 357 for ijr in range (0,28): 358 print 'jour=', ijr+1 359 ## ch17 ## 360 ind_jr17_FEB = np.where(jjr17_FEB[bbzone_CH17_FEB]==ijr+1)[0] 361 a = emis17_FEB[bbzone_CH17_FEB][ind_jr17_FEB] 362 b = tb17_FEB[bbzone_CH17_FEB][ind_jr17_FEB] 363 c = ts17_FEB[bbzone_CH17_FEB][ind_jr17_FEB] 364 d = orog17_FEB[bbzone_CH17_FEB][ind_jr17_FEB] 365 emis17_FEB_moy[ijr] = mean(a[nonzero((a!=-500.)&(a<=1.))]) 366 tb17_FEB_moy[ijr] = mean(b[nonzero((b!=-500.)&(b!=0.))]) 367 ts17_FEB_moy[ijr] = mean(c[nonzero((c!=-500.)&(c!=0.))]) 368 orog17_FEB_moy[ijr] = mean(d[nonzero((d!=-500.))]) 369 370 371 ## APRIL ## 372 emis17_APR_moy = np.zeros([30],float) 373 tb17_APR_moy = np.zeros([30],float) 374 ts17_APR_moy = np.zeros([30],float) 375 orog17_APR_moy = np.zeros([30],float) 376 for ijr in range (0,30): 377 print 'jour=', ijr+1 378 ind_jr17_APR = np.where(jjr17_APR[bbzone_CH17_APR]==ijr+1)[0] 379 a = emis17_APR[bbzone_CH17_APR][ind_jr17_APR] 380 b = tb17_APR[bbzone_CH17_APR][ind_jr17_APR] 381 c = ts17_APR[bbzone_CH17_APR][ind_jr17_APR] 382 d = orog17_APR[bbzone_CH17_APR][ind_jr17_APR] 383 emis17_APR_moy[ijr] = mean(a[nonzero((a!=-500.)&(a<=1.))]) 384 tb17_APR_moy[ijr] = mean(b[nonzero((b!=-500.)&(b!=0.))]) 385 ts17_APR_moy[ijr] = mean(c[nonzero((c!=-500.)&(c!=0.))]) 386 orog17_APR_moy[ijr] = mean(d[nonzero((d!=-500.))]) 387 388 389 ## MAY ## 390 emis17_MAY_moy = np.zeros([31],float) 391 tb17_MAY_moy = np.zeros([31],float) 392 ts17_MAY_moy = np.zeros([31],float) 393 orog17_MAY_moy = np.zeros([31],float) 394 for ijr in range (0,31): 395 print 'jour=', ijr+1 396 ind_jr17_MAY = np.where(jjr17_MAY[bbzone_CH17_MAY]==ijr+1)[0] 397 a = emis17_MAY[bbzone_CH17_MAY][ind_jr17_MAY] 398 b = tb17_MAY[bbzone_CH17_MAY][ind_jr17_MAY] 399 c = ts17_MAY[bbzone_CH17_MAY][ind_jr17_MAY] 400 d = orog17_MAY[bbzone_CH17_MAY][ind_jr17_MAY] 401 emis17_MAY_moy[ijr] = mean(a[nonzero((a!=-500.)&(a<=1.))]) 402 tb17_MAY_moy[ijr] = mean(b[nonzero((b!=-500.)&(b!=0.))]) 403 ts17_MAY_moy[ijr] = mean(c[nonzero((c!=-500.)&(c!=0.))]) 404 orog17_MAY_moy[ijr] = mean(d[nonzero((d!=-500.))]) 405 406 407 ## JUNE ## 408 emis17_JUN_moy = np.zeros([30],float) 409 tb17_JUN_moy = np.zeros([30],float) 410 ts17_JUN_moy = np.zeros([30],float) 411 #orog17_JUN_moy = np.zeros([30],float) 412 #emis18_JUN_moy = np.zeros([30],float) 413 #tb18_JUN_moy = np.zeros([30],float) 414 #ts18_JUN_moy = np.zeros([30],float) 415 #emis16_JUN_moy = np.zeros([30],float) 416 #tb16_JUN_moy = np.zeros([30],float) 417 #ts16_JUN_moy = np.zeros([30],float) 418 for ijr in range (0,30): 419 print 'jour=', ijr+1 420 ind_jr17_JUN = np.where(jjr17_JUN[bbzone_CH17_JUN]==ijr+1)[0] 421 a = emis17_JUN[bbzone_CH17_JUN][ind_jr17_JUN] 422 b = tb17_JUN[bbzone_CH17_JUN][ind_jr17_JUN] 423 c = ts17_JUN[bbzone_CH17_JUN][ind_jr17_JUN] 424 d = orog17_JUN[bbzone_CH17_JUN][ind_jr17_JUN] 425 emis17_JUN_moy[ijr] = mean(a[nonzero((a!=-500.)&(a<=1.))]) 426 tb17_JUN_moy[ijr] = mean(b[nonzero((b!=-500.)&(b!=0.))]) 427 ts17_JUN_moy[ijr] = mean(c[nonzero((c!=-500.)&(c!=0.))]) 428 # orog17_JUN_moy[ijr] = mean(d[nonzero((d!=-500.))]) 429 ## ch18 ## 430 # ind_jr18 = np.where(jjr18_JUN[bbzone_CH18_JUN]==ijr+1)[0] 431 # d = emis18_JUN[bbzone_CH18_JUN][ind_jr18] 432 # e = tb18_JUN[bbzone_CH18_JUN][ind_jr18] 433 # f = ts18_JUN[bbzone_CH18_JUN][ind_jr18] 434 # emis18_JUN_moy[ijr] = mean(d[nonzero((d != -500.) & (d <= 1.))]) 435 # tb18_JUN_moy[ijr] = mean(e[nonzero((e != -500.) & (e != 0.))]) 436 # ts18_JUN_moy[ijr] = mean(f[nonzero((f != -500.) & (f != 0.))]) 437 ## ch16 ## 438 # ind_jr16 = np.where(jjr16_JUN[bbzone_CH16_JUN]==ijr+1)[0] 439 # g = emis16_JUN[bbzone_CH16_JUN][ind_jr16] 440 # h = tb16_JUN[bbzone_CH16_JUN][ind_jr16] 441 # l = ts16_JUN[bbzone_CH16_JUN][ind_jr16] 442 # emis16_JUN_moy[ijr] = mean(g[nonzero((g != -500.) & (g <= 1.))]) 443 # tb16_JUN_moy[ijr] = mean(h[nonzero((h != -500.) & (h != 0.))]) 444 # ts16_JUN_moy[ijr] = mean(l[nonzero((l != -500.) & (l != 0.))]) 445 446 447 ## JULY ## 448 emis17_JUL_moy = np.zeros([31],float) 449 tb17_JUL_moy = np.zeros([31],float) 450 ts17_JUL_moy = np.zeros([31],float) 451 orog17_JUL_moy = np.zeros([31],float) 452 for ijr in range (0,31): 453 print 'jour=', ijr+1 454 ind_jr17_JUL = np.where(jjr17_JUL[bbzone_CH17_JUL]==ijr+1)[0] 455 a = emis17_JUL[bbzone_CH17_JUL][ind_jr17_JUL] 456 b = tb17_JUL[bbzone_CH17_JUL][ind_jr17_JUL] 457 c = ts17_JUL[bbzone_CH17_JUL][ind_jr17_JUL] 458 d = orog17_JUL[bbzone_CH17_JUL][ind_jr17_JUL] 459 emis17_JUL_moy[ijr] = mean(a[nonzero((a!=-500.)&(a<=1.))]) 460 tb17_JUL_moy[ijr] = mean(b[nonzero((b!=-500.)&(b!=0.))]) 461 ts17_JUL_moy[ijr] = mean(c[nonzero((c!=-500.)&(c!=0.))]) 462 orog17_JUL_moy[ijr] = mean(d[nonzero((d!=-500.))]) 463 464 465 ## plot evolution temporelle ## 466 ## FEBUARY ## 467 fig = plt.figure() 468 plt.subplot(3, 1, 1) 469 plt.title('FEBUARY') 470 plt.plot(arange(0, 28, 1), emis17_FEB_moy, c = 'b') 471 plt.ylabel('Emissivity') 472 xticks(arange(0, 28, 1), arange(1, 29, 1)) 473 xlim (0, 28) 474 grid(True) 475 plt.subplot(3, 1, 2) 476 plt.plot(arange(0, 28, 1), tb17_FEB_moy, c = 'g', label = 'Tb') 477 ylabel('Brightness temperature') 478 xticks(arange(0, 28, 1), arange(1, 29, 1)) 479 xlim (0, 28) 480 grid(True) 481 plt.subplot(3, 1, 3) 482 plt.plot(arange(0, 28, 1), ts17_FEB_moy, c = 'r', label = 'Ts') 483 plt.ylabel('Surface temperature') 484 xticks(arange(0, 28, 1), arange(1, 29, 1)) 485 xlim (0, 28) 486 grid(True) 487 fig.show() 488 489 ## from APRIL to JULY ## 490 emis1 = np.append(emis17_APR_moy, emis17_MAY_moy) 491 emis2 = np.append(emis1, emis17_JUN_moy) 492 emis17_moy = np.append(emis2, emis17_JUL_moy) 493 tb1 = np.append(tb17_APR_moy, tb17_MAY_moy) 494 tb2 = np.append(tb1, tb17_JUN_moy) 495 tb17_moy = np.append(tb2, tb17_JUL_moy) 496 ts1 = np.append(ts17_APR_moy, ts17_MAY_moy) 497 ts2 = np.append(ts1, ts17_JUN_moy) 498 ts17_moy = np.append(ts2, ts17_JUL_moy) 499 fig = plt.figure() 500 plt.subplot(3, 1, 1) 501 plt.plot(arange(0, 122, 1), emis17_moy, c = 'b') 502 plt.ylabel('Emissivity') 503 xticks(array([0, 30, 61, 91, 122]), date[1:]) 504 xlim (0, 122) 505 grid(True) 506 plt.subplot(3, 1, 2) 507 plt.plot(arange(0, 122, 1), tb17_moy, c = 'g', label = 'Tb') 508 ylabel('Brightness temperature') 509 xticks(array([0, 30, 61, 91, 122]), date[1:]) 510 xlim (0, 122) 511 grid(True) 512 plt.subplot(3, 1, 3) 513 plt.plot(arange(0, 122, 1), ts17_moy, c = 'r', label = 'Ts') 514 plt.ylabel('Surface temperature') 515 xticks(array([0, 30, 61, 91, 122]), date[1:]) 516 xlim (0, 122) 517 grid(True) 518 fig.show() 519 520 ## JUNE ## 521 ## ch17 - ch18 ## 522 fig=plt.figure() 523 plt.subplot(3,1,1) 524 plt.plot(arange(0,30,1),emis17_JUN_moy,label='91.66GHz-V',c='r') 525 plt.plot(arange(0,30,1),emis18_JUN_moy,label='91.66GHz-H',c='b') 526 plt.xticks(arange(1,31,1)) 527 grid(True) 528 ylabel('emissivity') 529 legend(loc=7) 530 plt.title('SSMIS - JUNE 2010') 531 plt.subplot(3,1,2) 532 plt.plot(arange(0,30,1),tb17_JUN_moy,label='91.66GHz-V',c='r') 533 plt.plot(arange(0,30,1),tb18_JUN_moy,label='91.66GHz-H',c='b') 534 plt.xticks(arange(1,31,1)) 535 grid(True) 536 ylabel('brightness temperature') 537 legend(loc=7) 538 plt.subplot(3,1,3) 539 plt.plot(arange(0,30,1),ts17_JUN_moy,label='91.66GHz-V',c='r') 540 plt.plot(arange(0,30,1),ts18_JUN_moy,label='91.66GHz-H',c='b') 541 plt.xticks(arange(1,31,1)) 542 grid(True) 543 ylabel('surface temperature') 544 legend(loc=7) 545 fig.show() 546 ## ch16 - ch17 ## 547 fig=plt.figure() 548 plt.subplot(3,1,1) 549 plt.plot(arange(0,30,1),emis16_JUN_moy,label='37GHz-V',c='r') 550 plt.plot(arange(0,30,1),emis17_JUN_moy,label='91.66GHz-V',c='g') 551 plt.xticks(arange(1,31,1)) 552 grid(True) 553 ylabel('emissivity') 554 legend(loc=7) 555 plt.title('SSMIS - JUNE 2010') 556 plt.subplot(3,1,2) 557 plt.plot(arange(0,30,1),tb16_JUN_moy,label='37GHz-V',c='r') 558 plt.plot(arange(0,30,1),tb17_JUN_moy,label='91.66GHz-V',c='g') 559 plt.xticks(arange(1,31,1)) 560 grid(True) 561 ylabel('brightness temperature') 562 legend(loc=7) 563 plt.subplot(3,1,3) 564 plt.plot(arange(0,30,1),ts16_JUN_moy,label='37GHz-V',c='r') 565 plt.plot(arange(0,30,1),ts17_JUN_moy,label='91.66GHz-V',c='g') 566 plt.xticks(arange(1,31,1)) 567 grid(True) 568 ylabel('surface temperature') 569 legend(loc=7) 570 fig.show() 571 572 573 ## calcul anomalie de Tb 574 ## FEBUARY ## 575 tb17_FEB_anom = np.zeros([28], float) 576 for ijr in range (0,28): 577 print 'jour=', ijr + 1 578 tb17_FEB_anom[ijr]=tb17_FEB_moy[ijr]-mean(tb17_FEB_moy) 579 580 ## APRIL ## 581 tb17_APR_anom = np.zeros([30], float) 582 for ijr in range (0,30): 583 print 'jour=', ijr + 1 584 tb17_APR_anom[ijr]=tb17_APR_moy[ijr]-mean(tb17_APR_moy) 585 586 ## MAY ## 587 bbnan = nonzero(isnan(tb17_MAY_moy) == False) 588 tb17_MAY_anom = np.zeros([31], float) 589 for ijr in range (0,31): 590 print 'jour=', ijr + 1 591 tb17_MAY_anom[ijr]=tb17_MAY_moy[ijr]-mean(tb17_MAY_moy[bbnan]) 592 593 ## JUNE ## 594 tb17_JUN_anom = np.zeros([30],float) 595 #tb18_JUN_anom = np.zeros([30],float) 596 for ijr in range (0,30): 597 print 'jour=', ijr + 1 598 tb17_JUN_anom[ijr]=tb17_JUN_moy[ijr]-mean(tb17_JUN_moy) 599 # tb18_JUN_anom[ijr]=tb18_JUN_moy[ijr]-mean(tb18_JUN_moy) 600 601 ## JULY ## 602 tb17_JUL_anom = np.zeros([31],float) 603 for ijr in range (0,30): 604 print 'jour=', ijr + 1 605 tb17_JUL_anom[ijr]=tb17_JUL_moy[ijr]-mean(tb17_JUL_moy) 606 607 608 609 a1 = np.append(tb17_APR_anom, tb17_MAY_anom) 610 a2 = np.append(a1, tb17_JUN_anom) 611 tb17_month_anom = np.append(a2, tb17_JUL_anom) 612 613 614 ## for APRIL to JULY ## 615 fig = plt.figure() 616 plt.plot(arange(0, 122, 1), tb17_month_anom, c = 'k') 617 plt.plot(arange(0, 122, 1), np.zeros([122]), '--', c = 'r') 618 ylabel('Tb anomaly (K)') 619 xlim(0, 122) 620 xticks(array([0, 30, 61, 91 122]), date[1:]) 621 grid(True) 622 plt.title('SSMIS - zone2') 623 fig.show() 624 625 ## FEBRUARY ## 626 fig = plt.figure() 627 plt.plot(arange(0, 28, 1), tb17_FEB_anom, c = 'k') 628 plt.plot(arange(0, 28, 1), np.zeros([28]), '--', c = 'r') 629 ylabel('Tb anomaly (K)') 630 xlim(0, 27) 631 xticks(arange(0, 28, 1), arange(1, 29, 1)) 632 grid(True) 633 plt.xlabel('FABRUARY') 634 plt.title('SSMIS - zone2') 635 fig.show() 636 637 ## JUNE ## 638 fig=plt.figure() 639 plt.plot(arange(0,30,1),tb17_JUN_anom,label='91.66Ghz-V',c='r') 640 plt.plot(arange(0,30,1),tb18_JUN_anom,label='91.66GHz-H',c='b') 641 plt.plot(arange(0,31,1),np.zeros([31]),'--',c='k') 642 ylabel('Tb anomaly') 643 legend() 644 twinx().plot(arange(0,30,1),ts17_JUN_moy,label='surface temperature',c='g') 645 ylabel('surface temperature') 646 plt.xticks(arange(0, 30, 1), arange(1, 31, 1)) 647 grid(True) 648 plt.title('SSMIS - JUNE 2010') 649 fig.show() 650 651 652 653 654 ################ 655 # CARTOGRAPHIE # 656 ################ 657 ## Etude sur l'Antarctique ## 658 dx=5. 659 dy=5. 660 x0, x1 = -180, 180 661 y0, y1 = -90, -30 662 663 664 ## FEBRUARY ## 665 bbtb_ch17_FEB = nonzero((tb17_FEB != -500.) & (tb17_FEB != 0.)) 666 OUTZCH17_FEB = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx)),28], float) 667 outzch17_FEB = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx))], float) 668 lonch17_FEB = np.zeros([len(np.arange(x0, x1+1, dx))], float) 669 latch17_FEB = np.zeros([len(np.arange(y0, y1+1, dy))], float) 670 for ijr in range(0,28): 671 print 'jour=', ijr+1 672 ## ch17 ## 673 ind_jr17_FEB = np.where(jjr17_FEB[bbtb_ch17_FEB] == ijr+1)[0] 674 xx = lon17_FEB[bbtb_ch17_FEB][ind_jr17_FEB] 675 yy = lat17_FEB[bbtb_ch17_FEB][ind_jr17_FEB] 676 zz = tb17_FEB[bbtb_ch17_FEB][ind_jr17_FEB] 677 zz0 = min(zz) 678 zz1 = max(zz) 679 outz, outx, outy = ffgrid2.ffgrid(xx, yy, zz, dx, dy, x0, x1, y0, y1, zz0, zz1) 680 outzch17_FEB = outz 681 lonch17_FEB = outx 682 latch17_FEB = outy 683 OUTZCH17_FEB[:,:,ijr] = outzch17_FEB[:,:] 684 685 ## APRIL ## 686 bbtb_ch17_APR = nonzero((tb17_APR != -500.) & (tb17_APR != 0.)) 687 OUTZCH17_APR = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx)),30], float) 688 outzch17_APR = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx))], float) 689 lonch17_APR = np.zeros([len(np.arange(x0, x1+1, dx))], float) 690 latch17_APR = np.zeros([len(np.arange(y0, y1+1, dy))], float) 691 for ijr in range(0,30): 692 print 'jour=', ijr+1 693 ## ch17 ## 694 ind_jr17_APR = np.where(jjr17_APR[bbtb_ch17_APR] == ijr+1)[0] 695 xx = lon17_APR[bbtb_ch17_APR][ind_jr17_APR] 696 yy = lat17_APR[bbtb_ch17_APR][ind_jr17_APR] 697 zz = tb17_APR[bbtb_ch17_APR][ind_jr17_APR] 698 zz0 = min(zz) 699 zz1 = max(zz) 700 outz, outx, outy = ffgrid2.ffgrid(xx, yy, zz, dx, dy, x0, x1, y0, y1, zz0, zz1) 701 outzch17_APR = outz 702 lonch17_APR = outx 703 latch17_APR = outy 704 OUTZCH17_APR[:,:,ijr] = outzch17_APR[:,:] 705 706 ## MAY ## 707 bbtb_ch17_MAY = nonzero((tb17_MAY != -500.) & (tb17_MAY != 0.)) 708 OUTZCH17_MAY = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx)),31], float) 709 outzch17_MAY = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx))], float) 710 lonch17_MAY = np.zeros([len(np.arange(x0, x1+1, dx))], float) 711 latch17_MAY = np.zeros([len(np.arange(y0, y1+1, dy))], float) 712 for ijr in range(0,31): 713 print 'jour=', ijr+1 714 ## ch17 ## 715 ind_jr17_MAY = np.where(jjr17_MAY[bbtb_ch17_MAY] == ijr+1)[0] 716 xx = lon17_MAY[bbtb_ch17_MAY][ind_jr17_MAY] 717 yy = lat17_MAY[bbtb_ch17_MAY][ind_jr17_MAY] 718 zz = tb17_MAY[bbtb_ch17_MAY][ind_jr17_MAY] 719 zz0 = min(zz) 720 zz1 = max(zz) 721 outz, outx, outy = ffgrid2.ffgrid(xx, yy, zz, dx, dy, x0, x1, y0, y1, zz0, zz1) 722 outzch17_MAY = outz 723 lonch17_MAY = outx 724 latch17_MAY = outy 725 OUTZCH17_MAY[:,:,ijr] = outzch17_MAY[:,:] 726 727 ## JUNE ## 728 ## ch17 ## 729 bbtb_ch17_JUN = nonzero((tb17_JUN != -500.) & (tb17_JUN != 0.)) 730 OUTZCH17_JUN = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx)),30], float) 731 outzch17_JUN = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx))], float) 732 lonch17_JUN = np.zeros([len(np.arange(x0, x1+1, dx))], float) 733 latch17_JUN = np.zeros([len(np.arange(y0, y1+1, dy))], float) 734 ## ch18 ## 735 bbemis_ch18_JUN=nonzero((emis18_JUN!=-500.)&(emis18_JUN<1.)&(emis18_JUN>0.)) 736 bbtb_ch18_JUN=nonzero((tb18_JUN!=-500.)&(tb18_JUN!=0.)) 737 OUTZCH18_JUN = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx)),30], float) 738 outzch18_JUN = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx))], float) 739 lonch18_JUN=np.zeros([len(np.arange(x0, x1+1, dx))], float) 740 latch18_JUN=np.zeros([len(np.arange(y0, y1+1, dy))], float) 741 for ijr in range(0,30): 742 print 'jour=', ijr+1 743 ## ch17 ## 744 ind_jr17_JUN = np.where(jjr17_JUN[bbtb_ch17_JUN] == ijr+1)[0] 745 xx = lon17_JUN[bbtb_ch17_JUN][ind_jr17_JUN] 746 yy = lat17_JUN[bbtb_ch17_JUN][ind_jr17_JUN] 747 zz = tb17_JUN[bbtb_ch17_JUN][ind_jr17_JUN] 748 zz0 = min(zz) 749 zz1 = max(zz) 750 outz, outx, outy = ffgrid2.ffgrid(xx, yy, zz, dx, dy, x0, x1, y0, y1, zz0, zz1) 751 outzch17_JUN = outz 752 lonch17_JUN = outx 753 latch17_JUN = outy 754 OUTZCH17_JUN[:,:,ijr] = outzch17_JUN[:,:] 755 ## ch18 ## 756 ind_jr18_JUN = np.where(jjr18_JUN[bbtb_ch18_JUN] == ijr+1)[0] 757 xx = lon18_JUN[bbtb_ch18_JUN][ind_jr18_JUN] 758 yy = lat18_JUN[bbtb_ch18_JUN][ind_jr18_JUN] 759 zz = tb18_JUN[bbtb_ch18_JUN][ind_jr18_JUN] 760 zz0 = min(zz) 761 zz1 = max(zz) 762 outz, outx, outy = ffgrid2.ffgrid(xx, yy, zz, dx, dy, x0, x1, y0, y1, zz0, zz1) 763 outzch18_JUN = outz 764 lonch18_JUN = outx 765 latch18_JUN = outy 766 OUTZCH18_JUN[:,:,ijr] = outzch18_JUN[:,:] 767 768 ## JULY ## 769 bbtb_ch17_JUL = nonzero((tb17_JUL != -500.) & (tb17_JUL != 0.)) 770 OUTZCH17_JUL = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx)),31], float) 771 outzch17_JUL = np.zeros([len(np.arange(y0, y1+1, dy)),len(np.arange(x0, x1+1, dx))], float) 772 lonch17_JUL = np.zeros([len(np.arange(x0, x1+1, dx))], float) 773 latch17_JUL = np.zeros([len(np.arange(y0, y1+1, dy))], float) 774 for ijr in range(0,31): 775 print 'jour=', ijr+1 776 ## ch17 ## 777 ind_jr17_JUL = np.where(jjr17_JUL[bbtb_ch17_JUL] == ijr+1)[0] 778 xx = lon17_JUL[bbtb_ch17_JUL][ind_jr17_JUL] 779 yy = lat17_JUL[bbtb_ch17_JUL][ind_jr17_JUL] 780 zz = tb17_JUL[bbtb_ch17_JUL][ind_jr17_JUL] 781 zz0 = min(zz) 782 zz1 = max(zz) 783 outz, outx, outy = ffgrid2.ffgrid(xx, yy, zz, dx, dy, x0, x1, y0, y1, zz0, zz1) 784 outzch17_JUL = outz 785 lonch17_JUL = outx 786 latch17_JUL = outy 787 OUTZCH17_JUL[:,:,ijr] = outzch17_JUL[:,:] 788 789 790 ## calcul de la climatologie moyenne sur le mois et anomalie en chaque lon/lat ## 791 ## FEBRUARY ## 792 mean_outzch17_FEB = np.zeros([len(latch17_FEB), len(lonch17_FEB)], float) 793 for ilon in range (0,len(lonch17_FEB)): 794 for ilat in range (0,len(latch17_FEB)): 795 mean_outzch17_FEB[ilat,ilon] = mean(OUTZCH17_FEB[ilat,ilon,:]) 796 797 tbch17_anom_FEB = np.zeros([len(latch17_FEB),len(lonch17_FEB),28], float) 798 for ijr in range (0,28): 799 tbch17_anom_FEB[:,:,ijr] = OUTZCH17_FEB[:,:,ijr] - mean_outzch17_FEB[:,:] 800 801 ## APRIL ## 802 mean_outzch17_APR = np.zeros([len(latch17_APR), len(lonch17_APR)], float) 803 for ilon in range (0,len(lonch17_APR)): 804 for ilat in range (0,len(latch17_APR)): 805 mean_outzch17_APR[ilat,ilon] = mean(OUTZCH17_APR[ilat,ilon,:]) 806 807 tbch17_anom_APR = np.zeros([len(latch17_APR),len(lonch17_APR),30], float) 808 for ijr in range (0,30): 809 tbch17_anom_APR[:,:,ijr] = OUTZCH17_APR[:,:,ijr] - mean_outzch17_APR[:,:] 810 811 ## MAY ## 812 mean_outzch17_MAY = np.zeros([len(latch17_MAY), len(lonch17_MAY)], float) 813 for ilon in range (0,len(lonch17_MAY)): 814 for ilat in range (0,len(latch17_MAY)): 815 mean_outzch17_MAY[ilat,ilon] = mean(OUTZCH17_MAY[ilat,ilon,:]) 816 817 tbch17_anom_MAY = np.zeros([len(latch17_MAY),len(lonch17_MAY),31], float) 818 for ijr in range (0,31): 819 tbch17_anom_MAY[:,:,ijr] = OUTZCH17_MAY[:,:,ijr] - mean_outzch17_MAY[:,:] 820 821 822 ## JUNE ## 823 ## ch17 ## 824 mean_outzch17_JUN = np.zeros([len(latch17_JUN), len(lonch17_JUN)], float) 825 for ilon in range (0,len(lonch17_JUN)): 826 for ilat in range (0,len(latch17_JUN)): 827 mean_outzch17_JUN[ilat,ilon] = OUTZCH17_JUN[ilat,ilon,:].mean() 828 829 tbch17_anom_JUN = np.zeros([len(latch17_JUN),len(lonch17_JUN),30], float) 830 for ijr in range (0,30): 831 tbch17_anom_JUN[:,:,ijr] = OUTZCH17_JUN[:,:,ijr] - mean_outzch17_JUN[:,:] 832 833 ## ch18 ## 834 mean_outzch18_JUN = np.zeros([len(latch18_JUN), len(lonch18_JUN)], float) 835 for ilon in range (0,len(lonch18_JUN)): 836 for ilat in range (0,len(latch18_JUN)): 837 mean_outzch18_JUN[ilat,ilon] = OUTZCH18_JUN[ilat,ilon,:].mean() 838 839 tbch18_anom_JUN = np.zeros([len(latch18_JUN),len(lonch18_JUN),30], float) 840 for ijr in range (0,30): 841 tbch18_anom_JUN[:,:,ijr] = OUTZCH18_JUN[:,:,ijr] - mean_outzch18_JUN[:,:] 842 843 844 845 for ijr in range (23, 30): 846 figure() 847 plt.ion() 848 m = Basemap(llcrnrlon=-60, urcrnrlon=-40, llcrnrlat=-85, urcrnrlat=-75, projection='cyl', resolution='c', fix_aspect=True) 849 m.drawcoastlines(linewidth = 1) 850 m.drawparallels(np.arange(-85., 75., 2)) 851 m.drawmeridians(np.arange(-60., -40., 2)) 852 #m.fillcontinents() 853 clevs = arange(-25., 5., 0.1) 854 xii,yii = m(*np.meshgrid(lonch17_JUN, latch17_JUN)) 855 cs = m.contourf(xii, yii, tbch17_anom_JUN[:,:,ijr], clevs, cmap=cm.s3pcpn_l_r) 856 cbar = colorbar(cs) 857 cbar.set_label('Tb anomaly SSMIS CH17 - JUNE') 858 xticks(np.arange(-60., -40., 2)) 859 yticks(np.arange(-85., 75., 2)) 860 plt.savefig('/usr/home/lahlod/twice_d/figures_output_ANTARC/SSMIS/mean_tb_anomaly_map_'+str(ijr+1)+'JUN_ch17_SSMIS_Zoom_zone2') 861 862 863 figure() 864 plt.ion() 865 m = Basemap(llcrnrlon=-180, urcrnrlon=180, llcrnrlat=-90, urcrnrlat=-30, projection='cyl', resolution='c', fix_aspect=True) 866 m.drawcoastlines(linewidth = 1) 867 m.drawparallels(np.arange(-90., -30., 20)) 868 m.drawmeridians(np.arange(-180., 180., 20)) 869 #m.fillcontinents() 870 xii,yii = m(*np.meshgrid(lonch17_FEB, latch17_FEB)) 871 plt.xticks(arange(-180, 200, 20)) 872 plt.yticks(arange(-90, -30, 20)) 873 ## ch17 ## 874 clevs = arange(150., 270., 1.) 875 cs = m.contourf(xii, yii, mean_outzch17_FEB, clevs, cmap=cm.s3pcpn_l_r) 876 cbar = colorbar(cs) 877 cbar.set_label('Mean Tb FEB [CH17] - SSMIS') 878 ## BIAIS ch17-ch18 ## 879 biais_JUN = mean_outzch17_JUN - mean_outzch18_JUN 880 clevs = arange(0., 45., 1.) 881 cs = m.contourf(xii, yii, biais_JUN, clevs, cmap=cm.s3pcpn_l_r) 882 cbar = colorbar(cs) 883 cbar.set_label('Bias [CH17-CH18] of Mean Tb JUNE - SSMIS') 884 885 ## VARIANCE ch17 - ch18 ## 886 std1 = np.zeros([len(latch17_JUN), len(lonch17_JUN)], float) 887 for ilat in range (0, len(latch17_JUN)): 888 for ilon in range (0, len(lonch17_JUN)): 889 std1[ilat, ilon] = (mean_outzch17_JUN[ilat, ilon]**2)-(mean_outzch18_JUN[ilat, ilon]**2) 890 891 892 N = len(lonch17_JUN)*len(latch17_JUN) 893 std_JUN = std1/N 894 clevs = arange(0., 25., 0.1) 895 cs = m.contourf(xii, yii, std_JUN, clevs, cmap=cm.s3pcpn_l_r) 896 cbar = colorbar(cs) 897 cbar.set_label('Stantard deviation [CH17-CH18] of Mean Tb JUNE - SSMIS') 898 899 900 901 ########################## 902 # DIAGRAMME DE HOVMOLLER # 903 ########################## 904 # shape(tbch17_anom_JUN) = [ilat, ilon, ijr] 905 ## FEBRUARY ## 906 bbtranche17_FEB = nonzero((latch17_FEB >= -85.) & (latch17_FEB <= -75)) 907 mean_tbch17_anom_FEB = np.zeros([len(lonch17_FEB), 28], float) 908 for ilon in range (0, len(lonch17_FEB)): 909 for ijr in range (0,28): 910 mean_tbch17_anom_FEB[ilon,ijr] = mean(tbch17_anom_FEB[bbtranche17_FEB][:,ilon,ijr]) 911 912 y_time, x_space = np.meshgrid(arange(0,28,1), lonch17_FEB) 913 fig = plt.figure() 914 plt.pcolor(x_space, y_time, mean_tbch17_anom_FEB, cmap=cm.s3pcpn_l_r, vmin = -10., vmax = 15.) 915 plt.axis([-180., 180., 0, 28]) 916 cb = plt.colorbar() 917 cb.set_label('Tb anomaly - SSMIS CH17') 918 plt.xticks(arange(-180.,200.,40)) 919 plt.yticks(arange(0, 28, 1), arange (1, 29, 1)) 920 plt.xlabel('longitude') 921 plt.ylabel('FEBRUARY 2010') 922 923 ## MAY ## 924 bbtranche17_MAY = nonzero((latch17_MAY >= -85.) & (latch17_MAY <= -75)) 925 mean_tbch17_anom_MAY = np.zeros([len(lonch17_MAY), 31], float) 926 for ilon in range (0, len(lonch17_MAY)): 927 for ijr in range (0,31): 928 mean_tbch17_anom_MAY[ilon,ijr] = mean(tbch17_anom_MAY[bbtranche17_MAY][:,ilon,ijr]) 929 930 y_time, x_space = np.meshgrid(arange(0,31,1), lonch17_MAY) 931 fig = plt.figure() 932 plt.pcolor(x_space, y_time, mean_tbch17_anom_MAY, cmap=cm.s3pcpn_l_r, vmin = -12., vmax = 25.) 933 plt.axis([-180., 180., 0, 30]) 934 cb = plt.colorbar() 935 cb.set_label('Tb anomaly - SSMIS CH17') 936 plt.xticks(arange(-180.,200.,40)) 937 plt.yticks(arange(0, 30, 1), arange(1,31,1)) 938 plt.xlabel('longitude') 939 plt.ylabel('MAY 2010') 940 941 ## JUNE ## 942 bbtranche17_JUN = nonzero((latch17_JUN >= -85.) & (latch17_JUN <= -75)) 943 mean_tbch17_anom_JUN = np.zeros([len(lonch17_JUN), 30], float) 944 for ilon in range (0, len(lonch17_JUN)): 945 for ijr in range (0,30): 946 mean_tbch17_anom_JUN[ilon,ijr] = tbch17_anom_JUN[bbtranche17_JUN][:,ilon,ijr].mean() 947 948 949 y_time, x_space = np.meshgrid(arange(0,30,1), lonch17_APR) 950 fig = plt.figure() 951 plt.pcolor(x_space, y_time, mean_tbch17_anom_APR, cmap=cm.s3pcpn_l_r, vmin = -30., vmax = 25.) 952 plt.axis([-180., 180., 0, 29]) 953 cb = plt.colorbar() 954 cb.set_label('Tb anomaly - SSMIS CH17') 955 plt.xticks(arange(-180.,220.,40)) 956 plt.yticks(arange(0, 30, 1), arange(1,31,1)) 957 plt.xlabel('longitude') 958 plt.ylabel('JUNE 2010') 959 325 ############### fichiers par mois pour deux canaux (polars H et V) ################################## 326 327 ########## 328 ## ch12 ## 329 ########## 330 331 f1 = '/net/dedale/usr/dedale/surf/lelod/ANTARC/SSMIS_CH12_ANTARC_' 332 f3 = '2010.DAT' 333 month = np.array(['FEBRUARY', 'APRIL', 'MAY', 'JUNE', 'JULY']) 334 numlines = np.zeros([len(month)],int) 335 336 for imo in range (0, len(month)): 337 print month[imo] 338 f = f1 + str(month[imo]) + f3 339 fichier = open(f, 'r') 340 numlines[imo] = 0 341 for line in fichier: numlines[imo] += 1 342 343 fichier.close() 344 345 346 imo = 0 # FEB 347 fichier = open(f1 + str(month[imo]) + f3, 'r') 348 ssmis = np.zeros([18, numlines[imo]], float) 349 for iligne in range (0,numlines[imo]): 350 line = fichier.readline() 351 liste = line.split() 352 for j in range(0,18): 353 ssmis[j,iligne] = float(liste[j]) 354 355 356 fichier.close 357 358 359 ssch12_FEB=ssmis 360 lon12_FEB=ssch12_FEB[0,:] 361 lat12_FEB=ssch12_FEB[1,:] 362 jjr12_FEB=ssch12_FEB[4,:] 363 ts12_FEB=ssch12_FEB[8,:] 364 emis12_FEB=ssch12_FEB[14,:] 365 tb12_FEB=ssch12_FEB[13,:] 366 tup12_FEB=ssch12_FEB[16,:] 367 tdn12_FEB=ssch12_FEB[15,:] 368 trans12_FEB=ssch12_FEB[17,:] 369 orog12_FEB=ssch12_FEB[11,:] 370 371 imo = 1 # APR 372 fichier = open(f1 + str(month[imo]) + f3, 'r') 373 ssmis = np.zeros([18, numlines[imo]], float) 374 for iligne in range (0,numlines[imo]): 375 line = fichier.readline() 376 liste = line.split() 377 for j in range(0,18): 378 ssmis[j,iligne] = float(liste[j]) 379 380 381 fichier.close 382 383 ssch12_APR=ssmis 384 lon12_APR=ssch12_APR[0,:] 385 lat12_APR=ssch12_APR[1,:] 386 jjr12_APR=ssch12_APR[4,:] 387 ts12_APR=ssch12_APR[8,:] 388 emis12_APR=ssch12_APR[14,:] 389 tb12_APR=ssch12_APR[13,:] 390 tup12_APR=ssch12_APR[16,:] 391 tdn12_APR=ssch12_APR[15,:] 392 trans12_APR=ssch12_APR[17,:] 393 orog12_APR=ssch12_APR[11,:] 394 395 396 imo = 4 # JUL 397 fichier = open(f1 + str(month[imo]) + f3, 'r') 398 ssmis = np.zeros([18, numlines[imo]], float) 399 for iligne in range (0,numlines[imo]): 400 line = fichier.readline() 401 liste = line.split() 402 for j in range(0,18): 403 ssmis[j,iligne] = float(liste[j]) 404 405 406 fichier.close 407 408 ssch12_JUL=ssmis 409 lon12_JUL=ssch12_JUL[0,:] 410 lat12_JUL=ssch12_JUL[1,:] 411 jjr12_JUL=ssch12_JUL[4,:] 412 ts12_JUL=ssch12_JUL[8,:] 413 emis12_JUL=ssch12_JUL[14,:] 414 tb12_JUL=ssch12_JUL[13,:] 415 tup12_JUL=ssch12_JUL[16,:] 416 tdn12_JUL=ssch12_JUL[15,:] 417 trans12_JUL=ssch12_JUL[17,:] 418 orog12_JUL=ssch12_JUL[11,:] 419 420 421 ########## 422 ## ch13 ## 423 ########## 424 425 f1 = '/net/dedale/usr/dedale/surf/lelod/ANTARC/SSMIS_CH13_ANTARC_' 426 f3 = '2010.DAT' 427 month = np.array(['FEBRUARY', 'APRIL', 'MAY', 'JUNE', 'JULY']) 428 numlines = np.zeros([len(month)],int) 429 430 for imo in range (0, len(month)): 431 print month[imo] 432 f = f1 + str(month[imo]) + f3 433 fichier = open(f, 'r') 434 numlines[imo] = 0 435 for line in fichier: numlines[imo] += 1 436 437 fichier.close() 438 439 440 imo = 0 # FEB 441 fichier = open(f1 + str(month[imo]) + f3, 'r') 442 ssmis = np.zeros([18, numlines[imo]], float) 443 for iligne in range (0,numlines[imo]): 444 line = fichier.readline() 445 liste = line.split() 446 for j in range(0,18): 447 ssmis[j,iligne] = float(liste[j]) 448 449 450 fichier.close 451 452 453 ssch13_FEB=ssmis 454 lon13_FEB=ssch13_FEB[0,:] 455 lat13_FEB=ssch13_FEB[1,:] 456 jjr13_FEB=ssch13_FEB[4,:] 457 ts13_FEB=ssch13_FEB[8,:] 458 emis13_FEB=ssch13_FEB[14,:] 459 tb13_FEB=ssch13_FEB[13,:] 460 tup13_FEB=ssch13_FEB[16,:] 461 tdn13_FEB=ssch13_FEB[15,:] 462 trans13_FEB=ssch13_FEB[17,:] 463 orog13_FEB=ssch13_FEB[11,:] 464 465 imo = 1 # APR 466 fichier = open(f1 + str(month[imo]) + f3, 'r') 467 ssmis = np.zeros([18, numlines[imo]], float) 468 for iligne in range (0,numlines[imo]): 469 line = fichier.readline() 470 liste = line.split() 471 for j in range(0,18): 472 ssmis[j,iligne] = float(liste[j]) 473 474 475 fichier.close 476 477 ssch13_APR=ssmis 478 lon13_APR=ssch13_APR[0,:] 479 lat13_APR=ssch13_APR[1,:] 480 jjr13_APR=ssch13_APR[4,:] 481 ts13_APR=ssch13_APR[8,:] 482 emis13_APR=ssch13_APR[14,:] 483 tb13_APR=ssch13_APR[13,:] 484 tup13_APR=ssch13_APR[16,:] 485 tdn13_APR=ssch13_APR[15,:] 486 trans13_APR=ssch13_APR[17,:] 487 orog13_APR=ssch13_APR[11,:] 488 489 490 imo = 4 # JUL 491 fichier = open(f1 + str(month[imo]) + f3, 'r') 492 ssmis = np.zeros([18, numlines[imo]], float) 493 for iligne in range (0,numlines[imo]): 494 line = fichier.readline() 495 liste = line.split() 496 for j in range(0,18): 497 ssmis[j,iligne] = float(liste[j]) 498 499 500 fichier.close 501 502 ssch13_JUL=ssmis 503 lon13_JUL=ssch13_JUL[0,:] 504 lat13_JUL=ssch13_JUL[1,:] 505 jjr13_JUL=ssch13_JUL[4,:] 506 ts13_JUL=ssch13_JUL[8,:] 507 emis13_JUL=ssch13_JUL[14,:] 508 tb13_JUL=ssch13_JUL[13,:] 509 tup13_JUL=ssch13_JUL[16,:] 510 tdn13_JUL=ssch13_JUL[15,:] 511 trans13_JUL=ssch13_JUL[17,:] 512 orog13_JUL=ssch13_JUL[11,:]
Note: See TracChangeset
for help on using the changeset viewer.