|
38 | 38 | },
|
39 | 39 | {
|
40 | 40 | "cell_type": "code",
|
41 |
| - "execution_count": 2, |
| 41 | + "execution_count": 11, |
42 | 42 | "id": "3656786a-88f2-4a88-9ec8-80bbf3789f05",
|
43 | 43 | "metadata": {},
|
44 | 44 | "outputs": [],
|
|
53 | 53 | "import pandas as pd\n",
|
54 | 54 | "import cartopy.crs as ccrs\n",
|
55 | 55 | "import matplotlib as mpl\n",
|
56 |
| - "import matplotlib.pyplot as plt" |
| 56 | + "import matplotlib.pyplot as plt\n", |
| 57 | + "\n", |
| 58 | + "from nmc_met_base.qpf_cal import cum_freq, cfd_match" |
57 | 59 | ]
|
58 | 60 | },
|
59 | 61 | {
|
|
99 | 101 | },
|
100 | 102 | {
|
101 | 103 | "cell_type": "code",
|
102 |
| - "execution_count": 65, |
| 104 | + "execution_count": 3, |
103 | 105 | "id": "d9672e48-12b7-4c30-bb3b-3ce310caad2b",
|
104 | 106 | "metadata": {},
|
105 | 107 | "outputs": [
|
|
143 | 145 | },
|
144 | 146 | {
|
145 | 147 | "cell_type": "code",
|
146 |
| - "execution_count": 67, |
| 148 | + "execution_count": 4, |
147 | 149 | "id": "8ee51932-5859-4ea2-bf39-cdd35884cf84",
|
148 | 150 | "metadata": {},
|
149 | 151 | "outputs": [
|
|
274 | 276 | },
|
275 | 277 | {
|
276 | 278 | "cell_type": "code",
|
277 |
| - "execution_count": 81, |
| 279 | + "execution_count": 5, |
278 | 280 | "id": "4a0cc4d3-afe6-47fa-834a-0c0abcf2a6de",
|
279 | 281 | "metadata": {},
|
280 | 282 | "outputs": [],
|
|
293 | 295 | },
|
294 | 296 | {
|
295 | 297 | "cell_type": "code",
|
296 |
| - "execution_count": 82, |
| 298 | + "execution_count": 8, |
297 | 299 | "id": "c069a88e-76f9-4bf0-9a8a-c99c22c804b1",
|
298 | 300 | "metadata": {},
|
299 | 301 | "outputs": [],
|
|
306 | 308 | },
|
307 | 309 | {
|
308 | 310 | "cell_type": "code",
|
309 |
| - "execution_count": 94, |
| 311 | + "execution_count": 9, |
310 | 312 | "id": "719def2a-364f-44e7-9f71-8ceb594c74c5",
|
311 | 313 | "metadata": {},
|
312 | 314 | "outputs": [
|
|
398 | 400 | },
|
399 | 401 | {
|
400 | 402 | "cell_type": "code",
|
401 |
| - "execution_count": null, |
| 403 | + "execution_count": 12, |
402 | 404 | "id": "621f24b6-e3bb-48b2-99af-ae0daa31d6bf",
|
403 | 405 | "metadata": {},
|
404 | 406 | "outputs": [],
|
|
425 | 427 | },
|
426 | 428 | {
|
427 | 429 | "cell_type": "code",
|
428 |
| - "execution_count": 92, |
| 430 | + "execution_count": 14, |
429 | 431 | "id": "6f9acf80-ecc2-478f-abed-d84929a2794c",
|
430 | 432 | "metadata": {},
|
431 | 433 | "outputs": [
|
|
439 | 441 | ],
|
440 | 442 | "source": [
|
441 | 443 | "with np.printoptions(precision=3, suppress=True):\n",
|
442 |
| - " print(cfd_match([0, 0.1, 2, 6, 15, 52, 100, 130, 203.], obs_cdf, fct_cdf, bins))" |
| 444 | + " print(cfd_match([0, 0.1, 2, 6, 15, 52, 100, 130, 203.], obs_cfd, fct_cfd, bins))" |
443 | 445 | ]
|
444 | 446 | },
|
445 | 447 | {
|
|
452 | 454 | },
|
453 | 455 | {
|
454 | 456 | "cell_type": "code",
|
455 |
| - "execution_count": 95, |
| 457 | + "execution_count": 16, |
456 | 458 | "id": "da02eb03-322a-490e-89b0-4b261d20af13",
|
457 | 459 | "metadata": {},
|
458 | 460 | "outputs": [
|
|
482 | 484 | "data['FCST'] = data['FCST'].astype(float)\n",
|
483 | 485 | "\n",
|
484 | 486 | "# adjust the forecast values\n",
|
485 |
| - "fct_cal = cfd_match(data['FCST'], obs_cdf, fct_cdf, bins)\n", |
| 487 | + "fct_cal = cfd_match(data['FCST'], obs_cfd, fct_cfd, bins)\n", |
486 | 488 | "\n",
|
487 | 489 | "# calculate the calibrated forecast and observation CFD\n",
|
488 | 490 | "obs_cfd, bins = cum_freq(data['OBS'])\n",
|
|
507 | 509 | "\n",
|
508 | 510 | "分位值映射是另一种较为常用的降水量级订正方法,不仅用于天气模式(Bremnes,2007),也多用于气候模式(Maraun,2013)。分位值映射具有与频率匹配方法相同的两个步骤,主要不同点在于其采用降水样本的分位值分布曲线。Maraun(2013)指出当观测数据的分辨率远高于预报数据时,分位值映射还起到将低分辨预报转换为高分辨率的功能,但该降尺度作用会使得校正后降水序列的时空结构歪曲(如区域平均的极端值被过高估计,降水变化趋势受到影响等);为避免这些问题,需要加入随机偏差订正。Cannon等(2015)进一步引入分位差值映射来确保订正后降水时间序列的变化趋势不变,并将单变量的分位值映射拓展到多变量(降水和温度)协同订正。Hamill等(2017)以分位值映射方法为基础,发展多中心集合模式的降水概率预报后处理技术,得到的结果表现出更高的预报技巧和可靠性,同时保留了解析度和空间分布细节。\n",
|
509 | 511 | "\n",
|
510 |
| - "<img src=\"./images/quantile_mapping.png\" alt=\"image\" style=\"height: 600px;\">" |
| 512 | + "<img src=\"./images/quantile_mapping.png\" alt=\"image\" style=\"height: 600px;\"> \n", |
| 513 | + "<div id=\"images\">\n", |
| 514 | + "<img src=\"./images/qmap_raw.png\" alt=\"image\" style=\"height: 300px;\"> \n", |
| 515 | + "<img src=\"./images/qmap_cal.png\" alt=\"image\" style=\"height: 300px;\"> \n", |
| 516 | + "</div> " |
511 | 517 | ]
|
512 | 518 | },
|
| 519 | + { |
| 520 | + "cell_type": "code", |
| 521 | + "execution_count": null, |
| 522 | + "id": "4063d9bf-56eb-430a-a4e2-777d4c7a52ef", |
| 523 | + "metadata": {}, |
| 524 | + "outputs": [], |
| 525 | + "source": [] |
| 526 | + }, |
513 | 527 | {
|
514 | 528 | "cell_type": "markdown",
|
515 | 529 | "id": "620027cf-844c-4b4e-8631-9101806dc887",
|
|
537 | 551 | },
|
538 | 552 | {
|
539 | 553 | "cell_type": "code",
|
540 |
| - "execution_count": 3, |
| 554 | + "execution_count": 17, |
541 | 555 | "id": "88ded8bf-2c07-422a-b61f-63563c1f1117",
|
542 | 556 | "metadata": {},
|
543 | 557 | "outputs": [],
|
|
551 | 565 | },
|
552 | 566 | {
|
553 | 567 | "cell_type": "code",
|
554 |
| - "execution_count": 4, |
| 568 | + "execution_count": 18, |
555 | 569 | "id": "aaa5d04b-856b-461b-9566-fd335209dcba",
|
556 | 570 | "metadata": {},
|
557 | 571 | "outputs": [],
|
|
569 | 583 | },
|
570 | 584 | {
|
571 | 585 | "cell_type": "code",
|
572 |
| - "execution_count": 5, |
| 586 | + "execution_count": 19, |
573 | 587 | "id": "9a6f827b-f898-4af7-8aa8-1ae05ecd8948",
|
574 | 588 | "metadata": {},
|
575 | 589 | "outputs": [
|
|
688 | 702 | "[10957 rows x 3 columns]"
|
689 | 703 | ]
|
690 | 704 | },
|
691 |
| - "execution_count": 5, |
| 705 | + "execution_count": 19, |
692 | 706 | "metadata": {},
|
693 | 707 | "output_type": "execute_result"
|
694 | 708 | }
|
|
699 | 713 | },
|
700 | 714 | {
|
701 | 715 | "cell_type": "code",
|
702 |
| - "execution_count": 6, |
| 716 | + "execution_count": 20, |
703 | 717 | "id": "9e60345a-8f08-439b-9ae3-6357037f0319",
|
704 | 718 | "metadata": {},
|
705 | 719 | "outputs": [
|
|
818 | 832 | "[10799 rows x 3 columns]"
|
819 | 833 | ]
|
820 | 834 | },
|
821 |
| - "execution_count": 6, |
| 835 | + "execution_count": 20, |
822 | 836 | "metadata": {},
|
823 | 837 | "output_type": "execute_result"
|
824 | 838 | }
|
|
829 | 843 | },
|
830 | 844 | {
|
831 | 845 | "cell_type": "code",
|
832 |
| - "execution_count": 7, |
| 846 | + "execution_count": 21, |
833 | 847 | "id": "7aafc2ff-9f12-4b4d-afd2-9526659b72c4",
|
834 | 848 | "metadata": {},
|
835 | 849 | "outputs": [],
|
|
841 | 855 | },
|
842 | 856 | {
|
843 | 857 | "cell_type": "code",
|
844 |
| - "execution_count": 8, |
| 858 | + "execution_count": 22, |
845 | 859 | "id": "dfb6f28f-0e03-45f7-84c6-2c0c27ce2824",
|
846 | 860 | "metadata": {},
|
847 | 861 | "outputs": [
|
|
894 | 908 | },
|
895 | 909 | {
|
896 | 910 | "cell_type": "code",
|
897 |
| - "execution_count": 9, |
| 911 | + "execution_count": 23, |
898 | 912 | "id": "28523ba9-78f1-44a4-b92c-4afcea8f213b",
|
899 | 913 | "metadata": {},
|
900 | 914 | "outputs": [
|
|
913 | 927 | },
|
914 | 928 | {
|
915 | 929 | "cell_type": "code",
|
916 |
| - "execution_count": 10, |
| 930 | + "execution_count": 24, |
917 | 931 | "id": "3e815eb7-8f8e-47eb-bf28-84a872aa1a39",
|
918 | 932 | "metadata": {},
|
919 | 933 | "outputs": [],
|
|
927 | 941 | },
|
928 | 942 | {
|
929 | 943 | "cell_type": "code",
|
930 |
| - "execution_count": 11, |
| 944 | + "execution_count": 25, |
931 | 945 | "id": "bdb5b674-088b-4d2e-abad-dfa35bcde67c",
|
932 | 946 | "metadata": {},
|
933 | 947 | "outputs": [
|
|
957 | 971 | },
|
958 | 972 | {
|
959 | 973 | "cell_type": "code",
|
960 |
| - "execution_count": 12, |
| 974 | + "execution_count": 26, |
961 | 975 | "id": "39fc88cc-acaa-4db4-ae43-18853a8b6528",
|
962 | 976 | "metadata": {},
|
963 | 977 | "outputs": [
|
|
0 commit comments