|
143 | 143 | " data=data.mean(dims),\n", |
144 | 144 | " title=title,\n", |
145 | 145 | " fn=f\"map-mean-{title}\",\n", |
146 | | - " plot_size=(7.2, 3.6),\n", |
| 146 | + " plot_size=(9.6, 3.6),\n", |
147 | 147 | " cbar_label=\"mean normalized error\",\n", |
148 | 148 | " vmin=vmin,\n", |
149 | 149 | " vmax=vmax,\n", |
|
173 | 173 | " data=data.std(dims),\n", |
174 | 174 | " title=title,\n", |
175 | 175 | " fn=f\"map-std-{title}\",\n", |
176 | | - " plot_size=(7.2, 3.6),\n", |
| 176 | + " plot_size=(9.6, 3.6),\n", |
177 | 177 | " cbar_label=\"std. dev. normalized errors\",\n", |
178 | 178 | " vmin=vmin,\n", |
179 | 179 | " vmax=vmax,\n", |
|
203 | 203 | " data=(data.max(dim=dims) - data.min(dim=dims)),\n", |
204 | 204 | " title=title,\n", |
205 | 205 | " fn=f\"map-range-{title}\",\n", |
206 | | - " plot_size=(7.2, 3.6),\n", |
| 206 | + " plot_size=(9.6, 3.6),\n", |
207 | 207 | " cbar_label=\"range of normalized errors\",\n", |
208 | 208 | " vmin=vmin,\n", |
209 | 209 | " vmax=vmax,\n", |
|
234 | 234 | " chunks={\"time\": 12},\n", |
235 | 235 | " combine=\"nested\",\n", |
236 | 236 | " concat_dim=\"i\",\n", |
237 | | - ").transpose(\"time\", \"i\", \"latitude\", \"longitude\")" |
| 237 | + ").transpose(\"i\", \"time\", \"latitude\", \"longitude\")" |
238 | 238 | ] |
239 | 239 | }, |
240 | 240 | { |
|
297 | 297 | "outputs": [], |
298 | 298 | "source": [ |
299 | 299 | "def xu(ds, v, a):\n", |
300 | | - " x = ds[v][:, 0]\n", |
301 | | - " u = ds[a[\"uncertainty\"]][:, 0] / a.get(\"coverage\", 1.0)\n", |
| 300 | + " x = ds[v][0]\n", |
| 301 | + " u = ds[a[\"uncertainty\"]][0] / a.get(\"coverage\", 1.0)\n", |
302 | 302 | " if a.get(\"relative\", False):\n", |
303 | 303 | " u = u * x\n", |
304 | 304 | " return x, u" |
|
313 | 313 | "source": [ |
314 | 314 | "for v, a in config.items():\n", |
315 | 315 | " x, u = xu(ds, v, a)\n", |
316 | | - " res = (ds[v][:, 1:] - x) / u\n", |
| 316 | + " res = (ds[v][1:] - x) / u\n", |
317 | 317 | " plot_histogram(\n", |
318 | 318 | " res,\n", |
319 | 319 | " title=a[\"name\"],\n", |
|
366 | 366 | " chunks={\"lat\": 1080, \"lon\": 1080},\n", |
367 | 367 | " combine=\"nested\",\n", |
368 | 368 | " concat_dim=\"i\",\n", |
369 | | - ").transpose(\"time\", \"i\", \"lat\", \"lon\")" |
| 369 | + ")" |
370 | 370 | ] |
371 | 371 | }, |
372 | 372 | { |
|
477 | 477 | " \"bias\": \"aph_665_bias\",\n", |
478 | 478 | " \"rmsd\": \"aph_665_rmsd\",\n", |
479 | 479 | " },\n", |
480 | | - " \"atot_412\": {\n", |
481 | | - " \"name\": \"Total absorption coefficient (412 nm)\",\n", |
482 | | - " \"bias\": \"aph_412_bias\",\n", |
483 | | - " \"rmsd\": \"aph_412_rmsd\",\n", |
484 | | - " },\n", |
485 | | - " \"atot_443\": {\n", |
486 | | - " \"name\": \"Total absorption coefficient (443 nm)\",\n", |
487 | | - " \"bias\": \"aph_443_bias\",\n", |
488 | | - " \"rmsd\": \"aph_443_rmsd\",\n", |
489 | | - " },\n", |
490 | | - " \"atot_490\": {\n", |
491 | | - " \"name\": \"Total absorption coefficient (490 nm)\",\n", |
492 | | - " \"bias\": \"aph_490_bias\",\n", |
493 | | - " \"rmsd\": \"aph_490_rmsd\",\n", |
494 | | - " },\n", |
495 | | - " \"atot_510\": {\n", |
496 | | - " \"name\": \"Total absorption coefficient (510 nm)\",\n", |
497 | | - " \"bias\": \"aph_510_bias\",\n", |
498 | | - " \"rmsd\": \"aph_510_rmsd\",\n", |
499 | | - " },\n", |
500 | | - " \"atot_560\": {\n", |
501 | | - " \"name\": \"Total absorption coefficient (560 nm)\",\n", |
502 | | - " \"bias\": \"aph_560_bias\",\n", |
503 | | - " \"rmsd\": \"aph_560_rmsd\",\n", |
504 | | - " },\n", |
505 | | - " \"atot_665\": {\n", |
506 | | - " \"name\": \"Total absorption coefficient (665 nm)\",\n", |
507 | | - " \"bias\": \"aph_665_bias\",\n", |
508 | | - " \"rmsd\": \"aph_665_rmsd\",\n", |
509 | | - " },\n", |
510 | 480 | " \"kd_490\": {\n", |
511 | 481 | " \"name\": \"Attenuation coefficent (490 nm)\",\n", |
512 | 482 | " \"bias\": \"kd_490_bias\",\n", |
|
546 | 516 | "source": [ |
547 | 517 | "for v, a in config.items():\n", |
548 | 518 | " x, u = xu(ds, v, a)\n", |
549 | | - " res = (ds[v][0, 1:] - x) / u\n", |
| 519 | + " res = (ds[v][1:, 0] - x) / u\n", |
550 | 520 | " plot_histogram(\n", |
551 | 521 | " res,\n", |
552 | 522 | " title=a[\"name\"],\n", |
|
614 | 584 | " chunks={\"lat\": 1800, \"lon\": 3600},\n", |
615 | 585 | " combine=\"nested\",\n", |
616 | 586 | " concat_dim=\"i\",\n", |
617 | | - ").transpose(\"time\", \"i\", \"lat\", \"lon\")" |
| 587 | + ")" |
618 | 588 | ] |
619 | 589 | }, |
620 | 590 | { |
|
633 | 603 | "id": "27", |
634 | 604 | "metadata": {}, |
635 | 605 | "outputs": [], |
636 | | - "source": [ |
637 | | - "ds_mean = ds.isel(i=0)\n", |
638 | | - "ds_std = (ds - ds_mean).std(dim=\"i\")\n", |
639 | | - "ds_target = " |
640 | | - ] |
641 | | - }, |
642 | | - { |
643 | | - "cell_type": "code", |
644 | | - "execution_count": null, |
645 | | - "id": "28", |
646 | | - "metadata": {}, |
647 | | - "outputs": [], |
648 | 606 | "source": [ |
649 | 607 | "config = {\n", |
650 | 608 | " \"analysed_sst\": {\n", |
|
658 | 616 | { |
659 | 617 | "cell_type": "code", |
660 | 618 | "execution_count": null, |
661 | | - "id": "29", |
| 619 | + "id": "28", |
662 | 620 | "metadata": {}, |
663 | 621 | "outputs": [], |
664 | 622 | "source": [ |
|
671 | 629 | { |
672 | 630 | "cell_type": "code", |
673 | 631 | "execution_count": null, |
674 | | - "id": "30", |
| 632 | + "id": "29", |
675 | 633 | "metadata": {}, |
676 | 634 | "outputs": [], |
677 | 635 | "source": [ |
678 | 636 | "for v, a in config.items():\n", |
679 | 637 | " x, u = xu(ds, v, a)\n", |
680 | | - " res = (ds[v][0, 1:] - x) / u\n", |
| 638 | + " res = (ds[v][1:, 0] - x) / u\n", |
681 | 639 | " plot_histogram(\n", |
682 | 640 | " res,\n", |
683 | 641 | " title=a[\"name\"],\n", |
|
717 | 675 | { |
718 | 676 | "cell_type": "code", |
719 | 677 | "execution_count": null, |
720 | | - "id": "31", |
| 678 | + "id": "30", |
721 | 679 | "metadata": {}, |
722 | 680 | "outputs": [], |
723 | 681 | "source": [ |
|
726 | 684 | }, |
727 | 685 | { |
728 | 686 | "cell_type": "markdown", |
729 | | - "id": "32", |
730 | | - "metadata": { |
731 | | - "jp-MarkdownHeadingCollapsed": true |
732 | | - }, |
| 687 | + "id": "31", |
| 688 | + "metadata": {}, |
733 | 689 | "source": [ |
734 | 690 | "# GLORYS" |
735 | 691 | ] |
736 | 692 | }, |
737 | 693 | { |
738 | 694 | "cell_type": "code", |
739 | 695 | "execution_count": null, |
740 | | - "id": "33", |
| 696 | + "id": "32", |
741 | 697 | "metadata": {}, |
742 | 698 | "outputs": [], |
743 | 699 | "source": [ |
744 | 700 | "ds = xr.open_mfdataset(\n", |
745 | 701 | " \"./mercatorglorys12v1_gl12_mean_200001.*.nc\",\n", |
746 | 702 | " engine=\"h5netcdf\",\n", |
747 | 703 | " mask_and_scale=True,\n", |
748 | | - " chunks={\"depth\": 10, \"latitude\": 511, \"lon\": 1080},\n", |
| 704 | + " chunks={\"latitude\": 2041, \"lon\": 2160, \"depth\": 1},\n", |
749 | 705 | " combine=\"nested\",\n", |
750 | 706 | " concat_dim=\"i\",\n", |
751 | | - ").transpose(\"time\", \"i\", \"depth\", \"latitude\", \"longitude\")" |
| 707 | + ")" |
752 | 708 | ] |
753 | 709 | }, |
754 | 710 | { |
755 | 711 | "cell_type": "code", |
756 | 712 | "execution_count": null, |
757 | | - "id": "34", |
| 713 | + "id": "33", |
758 | 714 | "metadata": {}, |
759 | 715 | "outputs": [], |
760 | 716 | "source": [ |
|
764 | 720 | { |
765 | 721 | "cell_type": "code", |
766 | 722 | "execution_count": null, |
767 | | - "id": "35", |
| 723 | + "id": "34", |
768 | 724 | "metadata": {}, |
769 | 725 | "outputs": [], |
770 | 726 | "source": [ |
|
779 | 735 | { |
780 | 736 | "cell_type": "code", |
781 | 737 | "execution_count": null, |
782 | | - "id": "36", |
| 738 | + "id": "35", |
783 | 739 | "metadata": {}, |
784 | 740 | "outputs": [], |
785 | 741 | "source": [ |
|
792 | 748 | { |
793 | 749 | "cell_type": "code", |
794 | 750 | "execution_count": null, |
795 | | - "id": "37", |
| 751 | + "id": "36", |
796 | 752 | "metadata": {}, |
797 | 753 | "outputs": [], |
798 | 754 | "source": [ |
799 | 755 | "for v, a in config.items():\n", |
800 | 756 | " x, u = xu(ds, v, a)\n", |
801 | | - " res = (ds[v][0, 1:, 0] - x) / u\n", |
| 757 | + " res = (ds[v][1:, 0, 0] - x) / u\n", |
802 | 758 | " plot_histogram(\n", |
803 | 759 | " res,\n", |
804 | 760 | " title=a[\"name\"],\n", |
|
838 | 794 | { |
839 | 795 | "cell_type": "code", |
840 | 796 | "execution_count": null, |
841 | | - "id": "38", |
| 797 | + "id": "37", |
842 | 798 | "metadata": {}, |
843 | 799 | "outputs": [], |
844 | 800 | "source": [ |
|
847 | 803 | }, |
848 | 804 | { |
849 | 805 | "cell_type": "markdown", |
850 | | - "id": "39", |
| 806 | + "id": "38", |
851 | 807 | "metadata": {}, |
852 | 808 | "source": [ |
853 | 809 | "# ESA SCOPE PP parameters" |
|
856 | 812 | { |
857 | 813 | "cell_type": "code", |
858 | 814 | "execution_count": null, |
859 | | - "id": "40", |
| 815 | + "id": "39", |
860 | 816 | "metadata": {}, |
861 | 817 | "outputs": [], |
862 | 818 | "source": [ |
863 | 819 | "ds = xr.open_mfdataset(\n", |
864 | 820 | " \"./PE_mro_mean_error_prv_4km_120p_spring_cor.*.nc\",\n", |
865 | 821 | " engine=\"h5netcdf\",\n", |
866 | | - " chunks={\"latitude\": 2160, \"lon\": 2160},\n", |
| 822 | + " chunks={\"lat\": 1440, \"lon\": 1440},\n", |
867 | 823 | " combine=\"nested\",\n", |
868 | 824 | " concat_dim=\"i\",\n", |
869 | | - ").transpose(\"i\", \"lat\", \"lon\")" |
| 825 | + ")" |
870 | 826 | ] |
871 | 827 | }, |
872 | 828 | { |
873 | 829 | "cell_type": "code", |
874 | 830 | "execution_count": null, |
875 | | - "id": "41", |
| 831 | + "id": "40", |
876 | 832 | "metadata": {}, |
877 | 833 | "outputs": [], |
878 | 834 | "source": [ |
|
882 | 838 | { |
883 | 839 | "cell_type": "code", |
884 | 840 | "execution_count": null, |
885 | | - "id": "42", |
| 841 | + "id": "41", |
886 | 842 | "metadata": {}, |
887 | 843 | "outputs": [], |
888 | 844 | "source": [ |
889 | 845 | "config = {\n", |
890 | 846 | " \"alphaB\": {\n", |
891 | 847 | " \"uncertainty\": \"alphaB_unc\",\n", |
892 | | - " \"distribution\": \"lognormal\",\n", |
893 | 848 | " \"name\": \"Initial slope of photosynthesis-irradiance curve\",\n", |
894 | 849 | " },\n", |
895 | 850 | " \"PmB\": {\n", |
896 | 851 | " \"uncertainty\": \"PmB_unc\",\n", |
897 | | - " \"distribution\": \"normal\",\n", |
898 | 852 | " \"name\": \"Assimilation number of photosynthesis-irradiance curve\",\n", |
899 | 853 | " }\n", |
900 | 854 | "}" |
|
903 | 857 | { |
904 | 858 | "cell_type": "code", |
905 | 859 | "execution_count": null, |
906 | | - "id": "43", |
| 860 | + "id": "42", |
907 | 861 | "metadata": {}, |
908 | 862 | "outputs": [], |
909 | 863 | "source": [ |
|
916 | 870 | { |
917 | 871 | "cell_type": "code", |
918 | 872 | "execution_count": null, |
919 | | - "id": "44", |
| 873 | + "id": "43", |
920 | 874 | "metadata": {}, |
921 | 875 | "outputs": [], |
922 | 876 | "source": [ |
|
946 | 900 | " res,\n", |
947 | 901 | " dims=[\"i\"],\n", |
948 | 902 | " title=a[\"name\"],\n", |
| 903 | + " x=\"lon\",\n", |
| 904 | + " y=\"lat\",\n", |
949 | 905 | " )\n", |
950 | 906 | " plot_std(\n", |
951 | 907 | " res,\n", |
952 | 908 | " dims=[\"i\"],\n", |
953 | 909 | " title=a[\"name\"],\n", |
| 910 | + " x=\"lon\",\n", |
| 911 | + " y=\"lat\",\n", |
954 | 912 | " )\n", |
955 | 913 | " plot_range(\n", |
956 | 914 | " res,\n", |
957 | 915 | " dims=[\"i\"],\n", |
958 | 916 | " title=a[\"name\"],\n", |
| 917 | + " x=\"lon\",\n", |
| 918 | + " y=\"lat\",\n", |
959 | 919 | " )" |
960 | 920 | ] |
961 | 921 | }, |
962 | 922 | { |
963 | 923 | "cell_type": "code", |
964 | 924 | "execution_count": null, |
965 | | - "id": "45", |
| 925 | + "id": "44", |
966 | 926 | "metadata": {}, |
967 | 927 | "outputs": [], |
968 | 928 | "source": [ |
|
972 | 932 | { |
973 | 933 | "cell_type": "code", |
974 | 934 | "execution_count": null, |
975 | | - "id": "46", |
| 935 | + "id": "45", |
976 | 936 | "metadata": {}, |
977 | 937 | "outputs": [], |
978 | 938 | "source": [] |
|
0 commit comments