|
47 | 47 | " data=data,\n", |
48 | 48 | " xlabel=\"normalized error\",\n", |
49 | 49 | " ylabel=\"probability density\",\n", |
50 | | - " fn=f\"hist-{title}\",\n", |
| 50 | + " fn=f\"hist-res-{title}\",\n", |
51 | 51 | " title=title,\n", |
| 52 | + " plot_size=(4.8, 3.6),\n", |
52 | 53 | " bins=11,\n", |
53 | 54 | " hist_range=(-5.5, 5.5),\n", |
54 | 55 | " density=True,\n", |
|
70 | 71 | " ylabel=\"probability density\",\n", |
71 | 72 | " fn=f\"hist-mean-{title}\",\n", |
72 | 73 | " title=title,\n", |
| 74 | + " plot_size=(4.8, 3.6),\n", |
73 | 75 | " bins=11,\n", |
74 | 76 | " hist_range=(-1.1, 1.1),\n", |
75 | 77 | " density=True,\n", |
|
91 | 93 | " ylabel=\"probability density\",\n", |
92 | 94 | " fn=f\"hist-std-{title}\",\n", |
93 | 95 | " title=title,\n", |
| 96 | + " plot_size=(4.8, 3.6),\n", |
94 | 97 | " bins=9,\n", |
95 | 98 | " hist_range=(0.1, 1.9),\n", |
96 | 99 | " density=True,\n", |
|
112 | 115 | " ylabel=\"probability density\",\n", |
113 | 116 | " fn=f\"hist-range-{title}\",\n", |
114 | 117 | " title=title,\n", |
115 | | - " bins=30,\n", |
| 118 | + " plot_size=(4.8, 3.6),\n", |
| 119 | + " bins=15,\n", |
116 | 120 | " hist_range=(0.0, 6.0),\n", |
117 | 121 | " density=True,\n", |
118 | 122 | " )\n", |
|
138 | 142 | " fig = WorldPlot().plot(\n", |
139 | 143 | " data=data.mean(dims),\n", |
140 | 144 | " title=title,\n", |
141 | | - " fn=f\"mean-{title}\",\n", |
| 145 | + " fn=f\"map-mean-{title}\",\n", |
| 146 | + " plot_size=(9.6, 3.6),\n", |
142 | 147 | " cbar_label=\"mean normalized error\",\n", |
143 | 148 | " vmin=vmin,\n", |
144 | 149 | " vmax=vmax,\n", |
|
167 | 172 | " fig = WorldPlot().plot(\n", |
168 | 173 | " data=data.std(dims),\n", |
169 | 174 | " title=title,\n", |
170 | | - " fn=f\"std-{title}\",\n", |
| 175 | + " fn=f\"map-std-{title}\",\n", |
| 176 | + " plot_size=(9.6, 3.6),\n", |
171 | 177 | " cbar_label=\"std. dev. normalized errors\",\n", |
172 | 178 | " vmin=vmin,\n", |
173 | 179 | " vmax=vmax,\n", |
|
188 | 194 | " data,\n", |
189 | 195 | " dims: str | list[str],\n", |
190 | 196 | " title: str,\n", |
191 | | - " show: bool = False,\n", |
192 | 197 | " vmin=1.0,\n", |
193 | 198 | " vmax=5.0,\n", |
194 | 199 | " x: str | None = None,\n", |
|
197 | 202 | " fig = WorldPlot().plot(\n", |
198 | 203 | " data=(data.max(dim=dims) - data.min(dim=dims)),\n", |
199 | 204 | " title=title,\n", |
200 | | - " fn=f\"range-{title}\",\n", |
201 | | - " show=show,\n", |
| 205 | + " fn=f\"map-range-{title}\",\n", |
| 206 | + " plot_size=(9.6, 3.6),\n", |
202 | 207 | " cbar_label=\"range of normalized errors\",\n", |
203 | 208 | " vmin=vmin,\n", |
204 | 209 | " vmax=vmax,\n", |
|
211 | 216 | { |
212 | 217 | "cell_type": "markdown", |
213 | 218 | "id": "10", |
214 | | - "metadata": {}, |
| 219 | + "metadata": { |
| 220 | + "jp-MarkdownHeadingCollapsed": true |
| 221 | + }, |
215 | 222 | "source": [ |
216 | | - "# ESA SCOPE exchange (D. J. Ford)" |
| 223 | + "# ESA SCOPE carbonate system (D. J. Ford)" |
217 | 224 | ] |
218 | 225 | }, |
219 | 226 | { |
|
343 | 350 | { |
344 | 351 | "cell_type": "markdown", |
345 | 352 | "id": "17", |
346 | | - "metadata": {}, |
| 353 | + "metadata": { |
| 354 | + "jp-MarkdownHeadingCollapsed": true |
| 355 | + }, |
347 | 356 | "source": [ |
348 | 357 | "# ESA CCI Ocean Colour" |
349 | 358 | ] |
|
472 | 481 | " \"bias\": \"aph_665_bias\",\n", |
473 | 482 | " \"rmsd\": \"aph_665_rmsd\",\n", |
474 | 483 | " },\n", |
| 484 | + " \"atot_412\": {\n", |
| 485 | + " \"name\": \"Total absorption coefficient (412 nm)\",\n", |
| 486 | + " \"bias\": \"aph_412_bias\",\n", |
| 487 | + " \"rmsd\": \"aph_412_rmsd\",\n", |
| 488 | + " },\n", |
| 489 | + " \"atot_443\": {\n", |
| 490 | + " \"name\": \"Total absorption coefficient (443 nm)\",\n", |
| 491 | + " \"bias\": \"aph_443_bias\",\n", |
| 492 | + " \"rmsd\": \"aph_443_rmsd\",\n", |
| 493 | + " },\n", |
| 494 | + " \"atot_490\": {\n", |
| 495 | + " \"name\": \"Total absorption coefficient (490 nm)\",\n", |
| 496 | + " \"bias\": \"aph_490_bias\",\n", |
| 497 | + " \"rmsd\": \"aph_490_rmsd\",\n", |
| 498 | + " },\n", |
| 499 | + " \"atot_510\": {\n", |
| 500 | + " \"name\": \"Total absorption coefficient (510 nm)\",\n", |
| 501 | + " \"bias\": \"aph_510_bias\",\n", |
| 502 | + " \"rmsd\": \"aph_510_rmsd\",\n", |
| 503 | + " },\n", |
| 504 | + " \"atot_560\": {\n", |
| 505 | + " \"name\": \"Total absorption coefficient (560 nm)\",\n", |
| 506 | + " \"bias\": \"aph_560_bias\",\n", |
| 507 | + " \"rmsd\": \"aph_560_rmsd\",\n", |
| 508 | + " },\n", |
| 509 | + " \"atot_665\": {\n", |
| 510 | + " \"name\": \"Total absorption coefficient (665 nm)\",\n", |
| 511 | + " \"bias\": \"aph_665_bias\",\n", |
| 512 | + " \"rmsd\": \"aph_665_rmsd\",\n", |
| 513 | + " },\n", |
475 | 514 | " \"kd_490\": {\n", |
476 | 515 | " \"name\": \"Attenuation coefficent (490 nm)\",\n", |
477 | 516 | " \"bias\": \"kd_490_bias\",\n", |
|
561 | 600 | { |
562 | 601 | "cell_type": "markdown", |
563 | 602 | "id": "24", |
564 | | - "metadata": {}, |
| 603 | + "metadata": { |
| 604 | + "jp-MarkdownHeadingCollapsed": true |
| 605 | + }, |
565 | 606 | "source": [ |
566 | 607 | "# GHRSST" |
567 | 608 | ] |
|
680 | 721 | { |
681 | 722 | "cell_type": "markdown", |
682 | 723 | "id": "31", |
683 | | - "metadata": {}, |
| 724 | + "metadata": { |
| 725 | + "jp-MarkdownHeadingCollapsed": true |
| 726 | + }, |
684 | 727 | "source": [ |
685 | 728 | "# GLORYS" |
686 | 729 | ] |
|
795 | 838 | "source": [ |
796 | 839 | "ds.close()" |
797 | 840 | ] |
| 841 | + }, |
| 842 | + { |
| 843 | + "cell_type": "markdown", |
| 844 | + "id": "38", |
| 845 | + "metadata": { |
| 846 | + "jp-MarkdownHeadingCollapsed": true |
| 847 | + }, |
| 848 | + "source": [ |
| 849 | + "# ESA SCOPE PP parameters" |
| 850 | + ] |
| 851 | + }, |
| 852 | + { |
| 853 | + "cell_type": "code", |
| 854 | + "execution_count": null, |
| 855 | + "id": "39", |
| 856 | + "metadata": {}, |
| 857 | + "outputs": [], |
| 858 | + "source": [ |
| 859 | + "ds = xr.open_mfdataset(\n", |
| 860 | + " \"./PE_mro_mean_error_prv_4km_120p_spring_cor.*.nc\",\n", |
| 861 | + " engine=\"h5netcdf\",\n", |
| 862 | + " mask_and_scale=True,\n", |
| 863 | + " chunks={\"latitude\": 2160, \"lon\": 2160},\n", |
| 864 | + " combine=\"nested\",\n", |
| 865 | + " concat_dim=\"i\",\n", |
| 866 | + ").transpose(\"i\", \"lat\", \"lon\")" |
| 867 | + ] |
| 868 | + }, |
| 869 | + { |
| 870 | + "cell_type": "code", |
| 871 | + "execution_count": null, |
| 872 | + "id": "40", |
| 873 | + "metadata": {}, |
| 874 | + "outputs": [], |
| 875 | + "source": [ |
| 876 | + "ds" |
| 877 | + ] |
| 878 | + }, |
| 879 | + { |
| 880 | + "cell_type": "code", |
| 881 | + "execution_count": null, |
| 882 | + "id": "41", |
| 883 | + "metadata": {}, |
| 884 | + "outputs": [], |
| 885 | + "source": [ |
| 886 | + "config = {\n", |
| 887 | + " \"alphaB\": {\n", |
| 888 | + " \"uncertainty\": \"alphaB_unc\",\n", |
| 889 | + " \"distribution\": \"lognormal\",\n", |
| 890 | + " \"name\": \"alphaB\",\n", |
| 891 | + " },\n", |
| 892 | + " \"PmB\": {\n", |
| 893 | + " \"uncertainty\": \"PmB_unc\",\n", |
| 894 | + " \"distribution\": \"normal\",\n", |
| 895 | + " \"name\": \"PmB\",\n", |
| 896 | + " }\n", |
| 897 | + "}" |
| 898 | + ] |
| 899 | + }, |
| 900 | + { |
| 901 | + "cell_type": "code", |
| 902 | + "execution_count": null, |
| 903 | + "id": "42", |
| 904 | + "metadata": {}, |
| 905 | + "outputs": [], |
| 906 | + "source": [ |
| 907 | + "def xu(ds, v, a):\n", |
| 908 | + " x = ds[v][0]\n", |
| 909 | + " u = ds[a[\"uncertainty\"]][0]\n", |
| 910 | + " return x, u" |
| 911 | + ] |
| 912 | + }, |
| 913 | + { |
| 914 | + "cell_type": "code", |
| 915 | + "execution_count": null, |
| 916 | + "id": "43", |
| 917 | + "metadata": {}, |
| 918 | + "outputs": [], |
| 919 | + "source": [ |
| 920 | + "for v, a in config.items():\n", |
| 921 | + " x, u = xu(ds, v, a)\n", |
| 922 | + " res = (ds[v][1:] - x) / u\n", |
| 923 | + " plot_histogram(\n", |
| 924 | + " res,\n", |
| 925 | + " title=a[\"name\"],\n", |
| 926 | + " )\n", |
| 927 | + " plot_histogram_mean(\n", |
| 928 | + " res,\n", |
| 929 | + " dims=\"i\",\n", |
| 930 | + " title=a[\"name\"],\n", |
| 931 | + " )\n", |
| 932 | + " plot_histogram_std(\n", |
| 933 | + " res,\n", |
| 934 | + " dims=\"i\",\n", |
| 935 | + " title=a[\"name\"],\n", |
| 936 | + " )\n", |
| 937 | + " plot_histogram_range(\n", |
| 938 | + " res,\n", |
| 939 | + " dims=\"i\",\n", |
| 940 | + " title=a[\"name\"],\n", |
| 941 | + " )\n", |
| 942 | + " plot_mean(\n", |
| 943 | + " res,\n", |
| 944 | + " dims=[\"i\"],\n", |
| 945 | + " title=a[\"name\"],\n", |
| 946 | + " )\n", |
| 947 | + " plot_std(\n", |
| 948 | + " res,\n", |
| 949 | + " dims=[\"i\"],\n", |
| 950 | + " title=a[\"name\"],\n", |
| 951 | + " )\n", |
| 952 | + " plot_range(\n", |
| 953 | + " res,\n", |
| 954 | + " dims=[\"i\"],\n", |
| 955 | + " title=a[\"name\"],\n", |
| 956 | + " )" |
| 957 | + ] |
| 958 | + }, |
| 959 | + { |
| 960 | + "cell_type": "code", |
| 961 | + "execution_count": null, |
| 962 | + "id": "44", |
| 963 | + "metadata": {}, |
| 964 | + "outputs": [], |
| 965 | + "source": [ |
| 966 | + "ds.close()" |
| 967 | + ] |
798 | 968 | } |
799 | 969 | ], |
800 | 970 | "metadata": { |
|
0 commit comments