You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@climate.apache.org by hu...@apache.org on 2016/01/21 22:52:01 UTC

[3/7] climate git commit: CLIMATE-720 - Revise file structure

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/RCMES/configuration_files/NARCCAP_paper/Fig12_winter.yaml
----------------------------------------------------------------------
diff --git a/RCMES/configuration_files/NARCCAP_paper/Fig12_winter.yaml b/RCMES/configuration_files/NARCCAP_paper/Fig12_winter.yaml
new file mode 100644
index 0000000..f1f0b1e
--- /dev/null
+++ b/RCMES/configuration_files/NARCCAP_paper/Fig12_winter.yaml
@@ -0,0 +1,75 @@
+workdir: ./
+output_netcdf_filename: narccap_prec_DJF_mean_1980-2003.nc
+
+# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
+time:
+    maximum_overlap_period: False
+    start_time: 1980-01-01
+    end_time: 2003-12-31
+    temporal_resolution: monthly
+    month_start: 12
+    month_end: 2
+    average_each_year: True
+
+space:
+    min_lat: 23.75
+    max_lat: 49.75
+    min_lon: -125.75
+    max_lon: -66.75
+
+regrid:
+    regrid_on_reference: False
+    regrid_dlat: 0.50
+    regrid_dlon: 0.50
+
+datasets:
+    reference:
+        data_source: rcmed
+        data_name: CRU
+        dataset_id: 10
+        parameter_id: 37
+
+    targets:
+        data_source: local
+        path: ../data/prec*ncep.monavg.nc                                                    
+        variable: prec    
+
+number_of_metrics_and_plots: 1
+
+metrics1: Portrait_diagram_subregion_interannual_variability
+
+plots1:
+    file_name: Fig12_winter 
+
+use_subregions: True 
+
+subregions:
+#subregion name (R01, R02, R03,....) followed by an array of boundaries [south, north, west, east]
+    R01: 
+      [42.75, 49.75, -123.75, -120.25]
+    R02:
+      [42.75, 49.75, -119.75, -112.75]
+    R03:
+      [37.25, 42.25, -123.75, -117.75]
+    R04: 
+      [32.25, 37.25, -122.75, -114.75]
+    R05:
+      [31.25, 37.25, -113.75, -108.25]
+    R06:
+      [31.25, 37.25, -108.25, -99.75]
+    R07:
+      [37.25, 43.25, -110.25, -103.75]
+    R08: 
+      [45.25, 49.25, -99.75, -90.25]
+    R09: 
+      [34.75, 45.25, -99.75, -90.25]
+    R10: 
+      [29.75, 34.75, -95.75, -84.75]
+    R11: 
+      [38.25, 44.75, -89.75, -80.25]
+    R12: 
+      [38.25, 44.75, -79.75, -70.25]
+    R13: 
+      [30.75, 38.25, -83.75, -75.25]
+    R14: 
+      [24.25, 30.75, -83.75, -80.25]

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/RCMES/configuration_files/NARCCAP_paper/Fig14_and_Fig15.yaml
----------------------------------------------------------------------
diff --git a/RCMES/configuration_files/NARCCAP_paper/Fig14_and_Fig15.yaml b/RCMES/configuration_files/NARCCAP_paper/Fig14_and_Fig15.yaml
new file mode 100644
index 0000000..5e01ce0
--- /dev/null
+++ b/RCMES/configuration_files/NARCCAP_paper/Fig14_and_Fig15.yaml
@@ -0,0 +1,82 @@
+workdir: ./
+output_netcdf_filename: narccap_rsds_monthly_1984-2003.nc
+
+# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
+time:
+    maximum_overlap_period: False
+    start_time: 1984-01-01
+    end_time: 2003-12-31
+    temporal_resolution: monthly
+    month_start: 1
+    month_end: 12
+    average_each_year: False
+
+space:
+    min_lat: 23.75
+    max_lat: 49.75
+    min_lon: -125.75
+    max_lon: -66.75
+
+regrid:
+    regrid_on_reference: False
+    regrid_dlat: 0.50
+    regrid_dlon: 0.50
+
+datasets:
+    reference:
+        data_source: local
+        data_name: SRB
+        path: ../data/srb_rel3.0_shortwave_from_1983_to_2007.nc                           
+        variable: sw_sfc_dn
+  
+
+    targets:
+        data_source: local
+        path: ../data/rsds*ncep.monavg.nc                                                    
+        variable: rsds    
+
+number_of_metrics_and_plots: 2
+
+metrics1: Map_plot_bias_of_multiyear_climatology
+
+plots1:
+    file_name: Fig14
+    subplots_array: !!python/tuple [4,2]
+
+metrics2: Taylor_diagram_spatial_pattern_of_multiyear_climatology
+
+plots2:
+    file_name: Fig15
+
+use_subregions: False
+
+subregions:
+#subregion name (R01, R02, R03,....) followed by an array of boundaries [south, north, west, east]
+    R01: 
+      [42.75, 49.75, -123.75, -120.25]
+    R02:
+      [42.75, 49.75, -119.75, -112.75]
+    R03:
+      [37.25, 42.25, -123.75, -117.75]
+    R04: 
+      [32.25, 37.25, -122.75, -114.75]
+    R05:
+      [31.25, 37.25, -113.75, -108.25]
+    R06:
+      [31.25, 37.25, -108.25, -99.75]
+    R07:
+      [37.25, 43.25, -110.25, -103.75]
+    R08: 
+      [45.25, 49.25, -99.75, -90.25]
+    R09: 
+      [34.75, 45.25, -99.75, -90.25]
+    R10: 
+      [29.75, 34.75, -95.75, -84.75]
+    R11: 
+      [38.25, 44.75, -89.75, -80.25]
+    R12: 
+      [38.25, 44.75, -79.75, -70.25]
+    R13: 
+      [30.75, 38.25, -83.75, -75.25]
+    R14: 
+      [24.25, 30.75, -83.75, -80.25]

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/RCMES/configuration_files/NARCCAP_paper/Fig16_summer.yaml
----------------------------------------------------------------------
diff --git a/RCMES/configuration_files/NARCCAP_paper/Fig16_summer.yaml b/RCMES/configuration_files/NARCCAP_paper/Fig16_summer.yaml
new file mode 100644
index 0000000..db33eff
--- /dev/null
+++ b/RCMES/configuration_files/NARCCAP_paper/Fig16_summer.yaml
@@ -0,0 +1,75 @@
+workdir: ./
+output_netcdf_filename: narccap_rsds_JJA_mean_1980-2003.nc
+
+# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
+time:
+    maximum_overlap_period: False
+    start_time: 1984-01-01
+    end_time: 2003-12-31
+    temporal_resolution: monthly
+    month_start: 6
+    month_end: 8
+    average_each_year: True
+
+space:
+    min_lat: 23.75
+    max_lat: 49.75
+    min_lon: -125.75
+    max_lon: -66.75
+
+regrid:
+    regrid_on_reference: False
+    regrid_dlat: 0.50
+    regrid_dlon: 0.50
+
+datasets:
+    reference:
+        data_source: local
+        data_name: SRB
+        path: ../data/srb_rel3.0_shortwave_from_1983_to_2007.nc
+        variable: sw_sfc_dn
+
+    targets:
+        data_source: local
+        path: ../data/rsds*ncep.monavg.nc                                                    
+        variable: rsds    
+
+number_of_metrics_and_plots: 1
+
+metrics1: Portrait_diagram_subregion_interannual_variability
+
+plots1:
+    file_name: Fig16_summer
+
+use_subregions: True 
+
+subregions:
+#subregion name (R01, R02, R03,....) followed by an array of boundaries [south, north, west, east]
+    R01: 
+      [42.75, 49.75, -123.75, -120.25]
+    R02:
+      [42.75, 49.75, -119.75, -112.75]
+    R03:
+      [37.25, 42.25, -123.75, -117.75]
+    R04: 
+      [32.25, 37.25, -122.75, -114.75]
+    R05:
+      [31.25, 37.25, -113.75, -108.25]
+    R06:
+      [31.25, 37.25, -108.25, -99.75]
+    R07:
+      [37.25, 43.25, -110.25, -103.75]
+    R08: 
+      [45.25, 49.25, -99.75, -90.25]
+    R09: 
+      [34.75, 45.25, -99.75, -90.25]
+    R10: 
+      [29.75, 34.75, -95.75, -84.75]
+    R11: 
+      [38.25, 44.75, -89.75, -80.25]
+    R12: 
+      [38.25, 44.75, -79.75, -70.25]
+    R13: 
+      [30.75, 38.25, -83.75, -75.25]
+    R14: 
+      [24.25, 30.75, -83.75, -80.25]

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/RCMES/configuration_files/NARCCAP_paper/Fig16_winter.yaml
----------------------------------------------------------------------
diff --git a/RCMES/configuration_files/NARCCAP_paper/Fig16_winter.yaml b/RCMES/configuration_files/NARCCAP_paper/Fig16_winter.yaml
new file mode 100644
index 0000000..e25a4b2
--- /dev/null
+++ b/RCMES/configuration_files/NARCCAP_paper/Fig16_winter.yaml
@@ -0,0 +1,75 @@
+workdir: ./
+output_netcdf_filename: narccap_rsds_DJF_mean_1980-2003.nc
+
+# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
+time:
+    maximum_overlap_period: False
+    start_time: 1984-01-01
+    end_time: 2003-12-31
+    temporal_resolution: monthly
+    month_start: 12
+    month_end: 2
+    average_each_year: True
+
+space:
+    min_lat: 23.75
+    max_lat: 49.75
+    min_lon: -125.75
+    max_lon: -66.75
+
+regrid:
+    regrid_on_reference: False
+    regrid_dlat: 0.50
+    regrid_dlon: 0.50
+
+datasets:
+    reference:
+        data_source: local
+        data_name: SRB
+        path: ../data/srb_rel3.0_shortwave_from_1983_to_2007.nc
+        variable: sw_sfc_dn
+
+    targets:
+        data_source: local
+        path: ../data/rsds*ncep.monavg.nc                                                    
+        variable: rsds    
+
+number_of_metrics_and_plots: 1
+
+metrics1: Portrait_diagram_subregion_interannual_variability
+
+plots1:
+    file_name: Fig16_winter
+
+use_subregions: True 
+
+subregions:
+#subregion name (R01, R02, R03,....) followed by an array of boundaries [south, north, west, east]
+    R01: 
+      [42.75, 49.75, -123.75, -120.25]
+    R02:
+      [42.75, 49.75, -119.75, -112.75]
+    R03:
+      [37.25, 42.25, -123.75, -117.75]
+    R04: 
+      [32.25, 37.25, -122.75, -114.75]
+    R05:
+      [31.25, 37.25, -113.75, -108.25]
+    R06:
+      [31.25, 37.25, -108.25, -99.75]
+    R07:
+      [37.25, 43.25, -110.25, -103.75]
+    R08: 
+      [45.25, 49.25, -99.75, -90.25]
+    R09: 
+      [34.75, 45.25, -99.75, -90.25]
+    R10: 
+      [29.75, 34.75, -95.75, -84.75]
+    R11: 
+      [38.25, 44.75, -89.75, -80.25]
+    R12: 
+      [38.25, 44.75, -79.75, -70.25]
+    R13: 
+      [30.75, 38.25, -83.75, -75.25]
+    R14: 
+      [24.25, 30.75, -83.75, -80.25]

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/RCMES/configuration_files/NARCCAP_paper/Fig5_and_Fig6.yaml
----------------------------------------------------------------------
diff --git a/RCMES/configuration_files/NARCCAP_paper/Fig5_and_Fig6.yaml b/RCMES/configuration_files/NARCCAP_paper/Fig5_and_Fig6.yaml
new file mode 100644
index 0000000..ef7cc9c
--- /dev/null
+++ b/RCMES/configuration_files/NARCCAP_paper/Fig5_and_Fig6.yaml
@@ -0,0 +1,50 @@
+workdir: ./                                      
+output_netcdf_filename: narccap_tas_annual_mean_1980-2003.nc
+
+# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
+time:
+    maximum_overlap_period: False
+    start_time: 1980-01-01
+    end_time: 2003-12-31
+    temporal_resolution: monthly
+    month_start: 1
+    month_end: 12
+    average_each_year: True  
+
+space:
+    min_lat: 23.75
+    max_lat: 49.75
+    min_lon: -125.75
+    max_lon: -66.75
+
+regrid:
+    regrid_on_reference: False
+    regrid_dlat: 0.50
+    regrid_dlon: 0.50
+
+datasets:
+    reference:
+        data_source: rcmed
+        data_name: CRU
+        dataset_id: 10
+        parameter_id: 38
+
+    targets:
+        data_source: local
+        path: ../data/temp.*ncep.monavg.nc                                                    
+        variable: temp    
+
+number_of_metrics_and_plots: 2
+
+metrics1: Map_plot_bias_of_multiyear_climatology
+
+plots1:
+    file_name: Fig5
+    subplots_array: !!python/tuple [4,2]
+
+metrics2: Taylor_diagram_spatial_pattern_of_multiyear_climatology
+
+plots2:
+    file_name: Fig6
+
+use_subregions: False

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/RCMES/configuration_files/NARCCAP_paper/Fig7_summer.yaml
----------------------------------------------------------------------
diff --git a/RCMES/configuration_files/NARCCAP_paper/Fig7_summer.yaml b/RCMES/configuration_files/NARCCAP_paper/Fig7_summer.yaml
new file mode 100644
index 0000000..ddbce3b
--- /dev/null
+++ b/RCMES/configuration_files/NARCCAP_paper/Fig7_summer.yaml
@@ -0,0 +1,75 @@
+workdir: ./
+output_netcdf_filename: narccap_tas_JJA_mean_1980-2003.nc
+
+# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
+time:
+    maximum_overlap_period: False
+    start_time: 1980-01-01
+    end_time: 2003-12-31
+    temporal_resolution: monthly
+    month_start: 6
+    month_end: 8
+    average_each_year: True
+
+space:
+    min_lat: 23.75
+    max_lat: 49.75
+    min_lon: -125.75
+    max_lon: -66.75
+
+regrid:
+    regrid_on_reference: False
+    regrid_dlat: 0.50
+    regrid_dlon: 0.50
+
+datasets:
+    reference:
+        data_source: rcmed
+        data_name: CRU
+        dataset_id: 10
+        parameter_id: 38
+
+    targets:
+        data_source: local
+        path: ../data/temp*ncep.monavg.nc                                                    
+        variable: temp    
+
+number_of_metrics_and_plots: 1
+
+metrics1: Portrait_diagram_subregion_interannual_variability
+
+plots1:
+    file_name: Fig7_summer
+
+use_subregions: True 
+
+subregions:
+#subregion name (R01, R02, R03,....) followed by an array of boundaries [south, north, west, east]
+    R01: 
+      [42.75, 49.75, -123.75, -120.25]
+    R02:
+      [42.75, 49.75, -119.75, -112.75]
+    R03:
+      [37.25, 42.25, -123.75, -117.75]
+    R04: 
+      [32.25, 37.25, -122.75, -114.75]
+    R05:
+      [31.25, 37.25, -113.75, -108.25]
+    R06:
+      [31.25, 37.25, -108.25, -99.75]
+    R07:
+      [37.25, 43.25, -110.25, -103.75]
+    R08: 
+      [45.25, 49.25, -99.75, -90.25]
+    R09: 
+      [34.75, 45.25, -99.75, -90.25]
+    R10: 
+      [29.75, 34.75, -95.75, -84.75]
+    R11: 
+      [38.25, 44.75, -89.75, -80.25]
+    R12: 
+      [38.25, 44.75, -79.75, -70.25]
+    R13: 
+      [30.75, 38.25, -83.75, -75.25]
+    R14: 
+      [24.25, 30.75, -83.75, -80.25]

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/RCMES/configuration_files/NARCCAP_paper/Fig7_winter.yaml
----------------------------------------------------------------------
diff --git a/RCMES/configuration_files/NARCCAP_paper/Fig7_winter.yaml b/RCMES/configuration_files/NARCCAP_paper/Fig7_winter.yaml
new file mode 100644
index 0000000..38add9b
--- /dev/null
+++ b/RCMES/configuration_files/NARCCAP_paper/Fig7_winter.yaml
@@ -0,0 +1,75 @@
+workdir: ./
+output_netcdf_filename: narccap_tas_DJF_mean_1980-2003.nc
+
+# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
+time:
+    maximum_overlap_period: False
+    start_time: 1980-01-01
+    end_time: 2003-12-31
+    temporal_resolution: monthly
+    month_start: 12
+    month_end: 2
+    average_each_year: True
+
+space:
+    min_lat: 23.75
+    max_lat: 49.75
+    min_lon: -125.75
+    max_lon: -66.75
+
+regrid:
+    regrid_on_reference: False
+    regrid_dlat: 0.50
+    regrid_dlon: 0.50
+
+datasets:
+    reference:
+        data_source: rcmed
+        data_name: CRU
+        dataset_id: 10
+        parameter_id: 38
+
+    targets:
+        data_source: local
+        path: ../data/temp*ncep.monavg.nc                                                    
+        variable: temp    
+
+number_of_metrics_and_plots: 1
+
+metrics1: Portrait_diagram_subregion_interannual_variability
+
+plots1:
+    file_name: Fig7_winter 
+
+use_subregions: True 
+
+subregions:
+#subregion name (R01, R02, R03,....) followed by an array of boundaries [south, north, west, east]
+    R01: 
+      [42.75, 49.75, -123.75, -120.25]
+    R02:
+      [42.75, 49.75, -119.75, -112.75]
+    R03:
+      [37.25, 42.25, -123.75, -117.75]
+    R04: 
+      [32.25, 37.25, -122.75, -114.75]
+    R05:
+      [31.25, 37.25, -113.75, -108.25]
+    R06:
+      [31.25, 37.25, -108.25, -99.75]
+    R07:
+      [37.25, 43.25, -110.25, -103.75]
+    R08: 
+      [45.25, 49.25, -99.75, -90.25]
+    R09: 
+      [34.75, 45.25, -99.75, -90.25]
+    R10: 
+      [29.75, 34.75, -95.75, -84.75]
+    R11: 
+      [38.25, 44.75, -89.75, -80.25]
+    R12: 
+      [38.25, 44.75, -79.75, -70.25]
+    R13: 
+      [30.75, 38.25, -83.75, -75.25]
+    R14: 
+      [24.25, 30.75, -83.75, -80.25]

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/RCMES/configuration_files/NARCCAP_paper/Fig8_and_Fig9.yaml
----------------------------------------------------------------------
diff --git a/RCMES/configuration_files/NARCCAP_paper/Fig8_and_Fig9.yaml b/RCMES/configuration_files/NARCCAP_paper/Fig8_and_Fig9.yaml
new file mode 100644
index 0000000..d25ecb6
--- /dev/null
+++ b/RCMES/configuration_files/NARCCAP_paper/Fig8_and_Fig9.yaml
@@ -0,0 +1,50 @@
+workdir: ./                                      
+output_netcdf_filename: narccap_prec_annual_mean_1980-2003.nc
+
+# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
+time:
+    maximum_overlap_period: False
+    start_time: 1980-01-01
+    end_time: 2003-12-31
+    temporal_resolution: monthly
+    month_start: 1
+    month_end: 12
+    average_each_year: True  
+
+space:
+    min_lat: 23.75
+    max_lat: 49.75
+    min_lon: -125.75
+    max_lon: -66.75
+
+regrid:
+    regrid_on_reference: False
+    regrid_dlat: 0.50
+    regrid_dlon: 0.50
+
+datasets:
+    reference:
+        data_source: rcmed
+        data_name: CRU
+        dataset_id: 10
+        parameter_id: 37
+
+    targets:
+        data_source: local
+        path: ../data/prec.*ncep.monavg.nc                                                    
+        variable: prec    
+
+number_of_metrics_and_plots: 2
+
+metrics1: Map_plot_bias_of_multiyear_climatology
+
+plots1:
+    file_name: Fig8
+    subplots_array: !!python/tuple [4,2]
+
+metrics2: Taylor_diagram_spatial_pattern_of_multiyear_climatology
+
+plots2:
+    file_name: Fig9
+
+use_subregions: False

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/RCMES/metrics_and_plots.py
----------------------------------------------------------------------
diff --git a/RCMES/metrics_and_plots.py b/RCMES/metrics_and_plots.py
new file mode 100644
index 0000000..6e00b0f
--- /dev/null
+++ b/RCMES/metrics_and_plots.py
@@ -0,0 +1,243 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+#Apache OCW lib immports
+import ocw.dataset as ds
+import ocw.data_source.local as local
+import ocw.plotter as plotter
+import ocw.utils as utils
+from ocw.evaluation import Evaluation
+import ocw.metrics as metrics
+
+# Python libraries
+import numpy as np
+import numpy.ma as ma
+import matplotlib.pyplot as plt
+from mpl_toolkits.basemap import Basemap 
+from matplotlib import rcParams
+from matplotlib.patches import Polygon
+import string
+
+def Map_plot_bias_of_multiyear_climatology(obs_dataset, obs_name, model_datasets, model_names,
+                                      file_name, row, column, map_projection=None):
+    '''Draw maps of observed multi-year climatology and biases of models"'''
+
+    # calculate climatology of observation data
+    obs_clim = utils.calc_temporal_mean(obs_dataset)
+    # determine the metrics
+    map_of_bias = metrics.TemporalMeanBias()
+
+    # create the Evaluation object
+    bias_evaluation = Evaluation(obs_dataset, # Reference dataset for the evaluation
+                                 model_datasets, # list of target datasets for the evaluation
+                                 [map_of_bias, map_of_bias])
+    # run the evaluation (bias calculation)
+    bias_evaluation.run() 
+
+    rcm_bias = bias_evaluation.results[0]
+
+    fig = plt.figure()
+
+    lat_min = obs_dataset.lats.min()
+    lat_max = obs_dataset.lats.max()
+    lon_min = obs_dataset.lons.min()
+    lon_max = obs_dataset.lons.max()
+
+    string_list = list(string.ascii_lowercase) 
+    ax = fig.add_subplot(row,column,1)
+    if map_projection == 'npstere':
+        m = Basemap(ax=ax, projection ='npstere', boundinglat=lat_min, lon_0=0,
+            resolution = 'l', fix_aspect=False)
+    else:
+        m = Basemap(ax=ax, projection ='cyl', llcrnrlat = lat_min, urcrnrlat = lat_max,
+            llcrnrlon = lon_min, urcrnrlon = lon_max, resolution = 'l', fix_aspect=False)
+    lons, lats = np.meshgrid(obs_dataset.lons, obs_dataset.lats)
+
+    x,y = m(lons, lats)
+
+    m.drawcoastlines(linewidth=1)
+    m.drawcountries(linewidth=1)
+    m.drawstates(linewidth=0.5, color='w')
+    max = m.contourf(x,y,obs_clim,levels = plotter._nice_intervals(obs_dataset.values, 10), extend='both',cmap='rainbow')
+    ax.annotate('(a) \n' + obs_name,xy=(lon_min, lat_min))
+    cax = fig.add_axes([0.02, 1.-float(1./row), 0.01, 1./row*0.6])
+    plt.colorbar(max, cax = cax) 
+    clevs = plotter._nice_intervals(rcm_bias, 11)
+    for imodel in np.arange(len(model_datasets)):
+
+        ax = fig.add_subplot(row, column,2+imodel)
+        if map_projection == 'npstere':
+            m = Basemap(ax=ax, projection ='npstere', boundinglat=lat_min, lon_0=0,
+                resolution = 'l', fix_aspect=False)
+        else:
+            m = Basemap(ax=ax, projection ='cyl', llcrnrlat = lat_min, urcrnrlat = lat_max,
+                llcrnrlon = lon_min, urcrnrlon = lon_max, resolution = 'l', fix_aspect=False)
+        m.drawcoastlines(linewidth=1)
+        m.drawcountries(linewidth=1)
+        m.drawstates(linewidth=0.5, color='w')
+        max = m.contourf(x,y,rcm_bias[imodel,:],levels = clevs, extend='both', cmap='RdBu_r')
+        ax.annotate('('+string_list[imodel+1]+')  \n '+model_names[imodel],xy=(lon_min, lat_min))
+
+    cax = fig.add_axes([0.91, 0.1, 0.015, 0.8])
+    plt.colorbar(max, cax = cax) 
+
+    plt.subplots_adjust(hspace=0.01,wspace=0.05)
+
+    fig.savefig(file_name,dpi=600,bbox_inches='tight')
+
+def Taylor_diagram_spatial_pattern_of_multiyear_climatology(obs_dataset, obs_name, model_datasets, model_names,
+                                      file_name):
+
+    # calculate climatological mean fields
+    obs_clim_dataset = ds.Dataset(obs_dataset.lats, obs_dataset.lons, obs_dataset.times, utils.calc_temporal_mean(obs_dataset))
+    model_clim_datasets = []
+    for dataset in model_datasets:
+        model_clim_datasets.append(ds.Dataset(dataset.lats, dataset.lons, dataset.times, utils.calc_temporal_mean(dataset)))
+
+    # Metrics (spatial standard deviation and pattern correlation)
+    # determine the metrics
+    taylor_diagram = metrics.SpatialPatternTaylorDiagram()
+
+    # create the Evaluation object
+    taylor_evaluation = Evaluation(obs_clim_dataset, # Climatological mean of reference dataset for the evaluation
+                                 model_clim_datasets, # list of climatological means from model datasets for the evaluation
+                                 [taylor_diagram])
+
+    # run the evaluation (bias calculation)
+    taylor_evaluation.run() 
+
+    taylor_data = taylor_evaluation.results[0]
+
+    plotter.draw_taylor_diagram(taylor_data, model_names, obs_name, file_name, pos='upper right',frameon=False)
+
+def Time_series_subregion(obs_subregion_mean, obs_name, model_subregion_mean, model_names, seasonal_cycle, 
+                          file_name, row, column, x_tick=['']):
+
+    nmodel, nt, nregion = model_subregion_mean.shape  
+
+    if seasonal_cycle:
+        obs_data = ma.mean(obs_subregion_mean.reshape([1,nt/12,12,nregion]), axis=1)
+        model_data = ma.mean(model_subregion_mean.reshape([nmodel,nt/12,12,nregion]), axis=1)
+        nt = 12
+    else:
+        obs_data = obs_subregion_mean
+        model_data = model_subregion_mean
+        
+    x_axis = np.arange(nt)
+    x_tick_values = x_axis
+
+    fig = plt.figure()
+    rcParams['xtick.labelsize'] = 6
+    rcParams['ytick.labelsize'] = 6
+  
+    for iregion in np.arange(nregion):
+        ax = fig.add_subplot(row, column, iregion+1) 
+        x_tick_labels = ['']
+        if iregion+1  > column*(row-1):
+            x_tick_labels = x_tick 
+        else:
+            x_tick_labels=['']
+        ax.plot(x_axis, obs_data[0, :, iregion], color='r', lw=2, label=obs_name)
+        for imodel in np.arange(nmodel):
+            ax.plot(x_axis, model_data[imodel, :, iregion], lw=0.5, label = model_names[imodel])
+        ax.set_xlim([-0.5,nt-0.5])
+        ax.set_xticks(x_tick_values)
+        ax.set_xticklabels(x_tick_labels)
+        ax.set_title('Region %02d' % (iregion+1), fontsize=8)
+    
+    ax.legend(bbox_to_anchor=(-0.2, row/2), loc='center' , prop={'size':7}, frameon=False)  
+
+    fig.subplots_adjust(hspace=0.7, wspace=0.5)
+    fig.savefig(file_name, dpi=600, bbox_inches='tight')
+
+def Portrait_diagram_subregion(obs_subregion_mean, obs_name, model_subregion_mean, model_names, seasonal_cycle,
+                               file_name, normalize=True):
+
+    nmodel, nt, nregion = model_subregion_mean.shape
+    
+    if seasonal_cycle:
+        obs_data = ma.mean(obs_subregion_mean.reshape([1,nt/12,12,nregion]), axis=1)
+        model_data = ma.mean(model_subregion_mean.reshape([nmodel,nt/12,12,nregion]), axis=1)
+        nt = 12
+    else:
+        obs_data = obs_subregion_mean
+        model_data = model_subregion_mean
+
+    subregion_metrics = ma.zeros([4, nregion, nmodel])
+
+    for imodel in np.arange(nmodel):
+        for iregion in np.arange(nregion):
+            # First metric: bias
+            subregion_metrics[0, iregion, imodel] = metrics.calc_bias(model_data[imodel, :, iregion], obs_data[0, :, iregion], average_over_time = True)
+            # Second metric: standard deviation
+            subregion_metrics[1, iregion, imodel] = metrics.calc_stddev_ratio(model_data[imodel, :, iregion], obs_data[0, :, iregion])
+            # Third metric: RMSE
+            subregion_metrics[2, iregion, imodel] = metrics.calc_rmse(model_data[imodel, :, iregion], obs_data[0, :, iregion])
+            # Fourth metric: correlation
+            subregion_metrics[3, iregion, imodel] = metrics.calc_correlation(model_data[imodel, :, iregion], obs_data[0, :, iregion])
+   
+    if normalize:
+        for iregion in np.arange(nregion):
+            subregion_metrics[0, iregion, : ] = subregion_metrics[0, iregion, : ]/ma.std(obs_data[0, :, iregion])*100. 
+            subregion_metrics[1, iregion, : ] = subregion_metrics[1, iregion, : ]*100. 
+            subregion_metrics[2, iregion, : ] = subregion_metrics[2, iregion, : ]/ma.std(obs_data[0, :, iregion])*100. 
+
+    region_names = ['R%02d' % i for i in np.arange(nregion)+1]
+
+    for imetric, metric in enumerate(['bias','std','RMSE','corr']):
+        plotter.draw_portrait_diagram(subregion_metrics[imetric, :, :], region_names, model_names, file_name+'_'+metric, 
+                                      xlabel='model',ylabel='region')             
+
+def Map_plot_subregion(subregions, ref_dataset, directory):
+  
+    lons, lats = np.meshgrid(ref_dataset.lons, ref_dataset.lats) 
+    fig = plt.figure()
+    ax = fig.add_subplot(111)
+    m = Basemap(ax=ax, projection='cyl',llcrnrlat = lats.min(), urcrnrlat = lats.max(),
+                llcrnrlon = lons.min(), urcrnrlon = lons.max(), resolution = 'l')
+    m.drawcoastlines(linewidth=0.75)
+    m.drawcountries(linewidth=0.75)
+    m.etopo()  
+    x, y = m(lons, lats) 
+    #subregion_array = ma.masked_equal(subregion_array, 0)
+    #max=m.contourf(x, y, subregion_array, alpha=0.7, cmap='Accent')
+    for subregion in subregions:
+        draw_screen_poly(subregion[1], m, 'w') 
+        plt.annotate(subregion[0],xy=(0.5*(subregion[1][2]+subregion[1][3]), 0.5*(subregion[1][0]+subregion[1][1])), ha='center',va='center', fontsize=8) 
+    fig.savefig(directory+'map_subregion', bbox_inches='tight')
+
+def draw_screen_poly(boundary_array, m, linecolor='k'):
+
+    ''' Draw a polygon on a map
+
+    :param boundary_array: [lat_north, lat_south, lon_east, lon_west]
+    :param m   : Basemap object
+    '''
+
+    lats = [boundary_array[0], boundary_array[0], boundary_array[1], boundary_array[1]]
+    lons = [boundary_array[3], boundary_array[2], boundary_array[2], boundary_array[3]]
+    x, y = m( lons, lats )
+    xy = zip(x,y)
+    poly = Polygon( xy, facecolor='none',edgecolor=linecolor )
+    plt.gca().add_patch(poly)
+    
+    
+   
+
+    
+
+    

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/RCMES/run_RCMES.py
----------------------------------------------------------------------
diff --git a/RCMES/run_RCMES.py b/RCMES/run_RCMES.py
new file mode 100644
index 0000000..1054446
--- /dev/null
+++ b/RCMES/run_RCMES.py
@@ -0,0 +1,246 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+#Apache OCW lib immports
+import ocw.dataset_processor as dsp
+import ocw.data_source.local as local
+import ocw.data_source.rcmed as rcmed
+import ocw.plotter as plotter
+import ocw.utils as utils
+from ocw.dataset import Bounds
+
+import matplotlib.pyplot as plt
+from matplotlib import rcParams
+import numpy as np
+import numpy.ma as ma
+import yaml
+from glob import glob
+import operator
+from dateutil import parser
+from datetime import datetime
+import os
+import sys
+
+from metrics_and_plots import *
+
+import ssl
+if hasattr(ssl, '_create_unverified_context'):
+  ssl._create_default_https_context = ssl._create_unverified_context
+
+config_file = str(sys.argv[1])
+
+print 'Reading the configuration file ', config_file
+config = yaml.load(open(config_file))
+time_info = config['time']
+temporal_resolution = time_info['temporal_resolution']
+
+start_time = datetime.strptime(time_info['start_time'].strftime('%Y%m%d'),'%Y%m%d')
+end_time = datetime.strptime(time_info['end_time'].strftime('%Y%m%d'),'%Y%m%d')
+
+space_info = config['space']
+min_lat = space_info['min_lat']
+max_lat = space_info['max_lat']
+min_lon = space_info['min_lon']
+max_lon = space_info['max_lon']
+
+""" Step 1: Load the reference data """
+ref_data_info = config['datasets']['reference']
+print 'Loading observation dataset:\n',ref_data_info
+ref_name = ref_data_info['data_name']
+if ref_data_info['data_source'] == 'local':
+    ref_dataset = local.load_file(ref_data_info['path'],
+                                  ref_data_info['variable'], name=ref_name)
+elif ref_data_info['data_source'] == 'rcmed':
+      ref_dataset = rcmed.parameter_dataset(ref_data_info['dataset_id'],
+                                            ref_data_info['parameter_id'],
+                                            min_lat, max_lat, min_lon, max_lon,
+                                            start_time, end_time)
+else:
+    print ' '
+    # TO DO: support ESGF
+
+ref_dataset =  dsp.normalize_dataset_datetimes(ref_dataset, temporal_resolution)
+if 'multiplying_factor' in ref_data_info.keys():
+    ref_dataset.values = ref_dataset.values*ref_data_info['multiplying_factor']
+
+""" Step 2: Load model NetCDF Files into OCW Dataset Objects """
+model_data_info = config['datasets']['targets']
+print 'Loading model datasets:\n',model_data_info
+if model_data_info['data_source'] == 'local':
+    model_datasets, model_names = local.load_multiple_files(file_path = model_data_info['path'],
+                                                            variable_name =model_data_info['variable'])
+else:
+    print ' '
+    # TO DO: support RCMED and ESGF
+for idata,dataset in enumerate(model_datasets):
+    model_datasets[idata] = dsp.normalize_dataset_datetimes(dataset, temporal_resolution)
+
+""" Step 3: Subset the data for temporal and spatial domain """
+# Create a Bounds object to use for subsetting
+if time_info['maximum_overlap_period']:
+    start_time, end_time = utils.get_temporal_overlap([ref_dataset]+model_datasets)
+    print 'Maximum overlap period'
+    print 'start_time:', start_time
+    print 'end_time:', end_time
+
+if temporal_resolution == 'monthly' and end_time.day !=1:
+    end_time = end_time.replace(day=1)
+if ref_data_info['data_source'] == 'rcmed':
+    min_lat = np.max([min_lat, ref_dataset.lats.min()])
+    max_lat = np.min([max_lat, ref_dataset.lats.max()])
+    min_lon = np.max([min_lon, ref_dataset.lons.min()])
+    max_lon = np.min([max_lon, ref_dataset.lons.max()])
+bounds = Bounds(min_lat, max_lat, min_lon, max_lon, start_time, end_time)
+
+if ref_dataset.lats.ndim !=2 and ref_dataset.lons.ndim !=2:
+    ref_dataset = dsp.subset(bounds,ref_dataset)
+else:
+    ref_dataset = dsp.temporal_slice(bounds.start, bounds.end, ref_dataset)
+for idata,dataset in enumerate(model_datasets):
+    if dataset.lats.ndim !=2 and dataset.lons.ndim !=2:
+        model_datasets[idata] = dsp.subset(bounds,dataset)
+    else:
+        model_datasets[idata] = dsp.temporal_slice(bounds.start, bounds.end, dataset)
+
+# Temporaly subset both observation and model datasets for the user specified season
+month_start = time_info['month_start']
+month_end = time_info['month_end']
+average_each_year = time_info['average_each_year']
+
+ref_dataset = dsp.temporal_subset(month_start, month_end,ref_dataset,average_each_year)
+for idata,dataset in enumerate(model_datasets):
+    model_datasets[idata] = dsp.temporal_subset(month_start, month_end,dataset,average_each_year)
+
+# generate grid points for regridding
+if config['regrid']['regrid_on_reference']:
+    new_lat = ref_dataset.lats
+    new_lon = ref_dataset.lons 
+else:
+    delta_lat = config['regrid']['regrid_dlat']
+    delta_lon = config['regrid']['regrid_dlon']
+    nlat = (max_lat - min_lat)/delta_lat+1
+    nlon = (max_lon - min_lon)/delta_lon+1
+    new_lat = np.linspace(min_lat, max_lat, nlat)
+    new_lon = np.linspace(min_lon, max_lon, nlon)
+
+# number of models
+nmodel = len(model_datasets)
+print 'Dataset loading completed'
+print 'Observation data:', ref_name 
+print 'Number of model datasets:',nmodel
+for model_name in model_names:
+    print model_name
+
+""" Step 4: Spatial regriding of the reference datasets """
+print 'Regridding datasets: ', config['regrid']
+if not config['regrid']['regrid_on_reference']:
+    ref_dataset = dsp.spatial_regrid(ref_dataset, new_lat, new_lon)
+    print 'Reference dataset has been regridded'
+for idata,dataset in enumerate(model_datasets):
+    model_datasets[idata] = dsp.spatial_regrid(dataset, new_lat, new_lon)
+    print model_names[idata]+' has been regridded'
+
+print 'Propagating missing data information'
+ref_dataset = dsp.mask_missing_data([ref_dataset]+model_datasets)[0]
+model_datasets = dsp.mask_missing_data([ref_dataset]+model_datasets)[1:]
+
+""" Step 5: Checking and converting variable units """
+print 'Checking and converting variable units'
+ref_dataset = dsp.variable_unit_conversion(ref_dataset)
+for idata,dataset in enumerate(model_datasets):
+    model_datasets[idata] = dsp.variable_unit_conversion(dataset)
+    
+
+print 'Generating multi-model ensemble'
+if len(model_datasets) >= 2.:
+    model_datasets.append(dsp.ensemble(model_datasets))
+    model_names.append('ENS')
+
+""" Step 6: Generate subregion average and standard deviation """
+if config['use_subregions']:
+    # sort the subregion by region names and make a list
+    subregions= sorted(config['subregions'].items(),key=operator.itemgetter(0))
+
+    # number of subregions
+    nsubregion = len(subregions)
+
+    print 'Calculating spatial averages and standard deviations of ',str(nsubregion),' subregions'
+
+    ref_subregion_mean, ref_subregion_std, subregion_array = utils.calc_subregion_area_mean_and_std([ref_dataset], subregions) 
+    model_subregion_mean, model_subregion_std, subregion_array = utils.calc_subregion_area_mean_and_std(model_datasets, subregions) 
+
+""" Step 7: Write a netCDF file """
+workdir = config['workdir']
+if workdir[-1] != '/':
+    workdir = workdir+'/'
+print 'Writing a netcdf file: ',workdir+config['output_netcdf_filename']
+if not os.path.exists(workdir):
+    os.system("mkdir "+workdir)
+
+if config['use_subregions']:
+    dsp.write_netcdf_multiple_datasets_with_subregions(ref_dataset, ref_name, model_datasets, model_names,
+                                                       path=workdir+config['output_netcdf_filename'],
+                                                       subregions=subregions, subregion_array = subregion_array, 
+                                                       ref_subregion_mean=ref_subregion_mean, ref_subregion_std=ref_subregion_std,
+                                                       model_subregion_mean=model_subregion_mean, model_subregion_std=model_subregion_std)
+else:
+    dsp.write_netcdf_multiple_datasets_with_subregions(ref_dataset, ref_name, model_datasets, model_names,
+                                                       path=workdir+config['output_netcdf_filename'])
+
+""" Step 8: Calculate metrics and draw plots """
+nmetrics = config['number_of_metrics_and_plots']
+if config['use_subregions']:
+    Map_plot_subregion(subregions, ref_dataset, workdir)
+
+if nmetrics > 0:
+    print 'Calculating metrics and generating plots'
+    for imetric in np.arange(nmetrics)+1:
+        metrics_name = config['metrics'+'%1d' %imetric]
+        plot_info = config['plots'+'%1d' %imetric]
+        file_name = workdir+plot_info['file_name']
+
+        print 'metrics '+str(imetric)+'/'+str(nmetrics)+': ', metrics_name
+        if metrics_name == 'Map_plot_bias_of_multiyear_climatology':
+            row, column = plot_info['subplots_array']
+            if 'map_projection' in plot_info.keys():
+                Map_plot_bias_of_multiyear_climatology(ref_dataset, ref_name, model_datasets, model_names,
+                                          file_name, row, column, map_projection=plot_info['map_projection'])
+            else:
+                Map_plot_bias_of_multiyear_climatology(ref_dataset, ref_name, model_datasets, model_names,
+                                          file_name, row, column)
+        elif metrics_name == 'Taylor_diagram_spatial_pattern_of_multiyear_climatology':
+            Taylor_diagram_spatial_pattern_of_multiyear_climatology(ref_dataset, ref_name, model_datasets, model_names,
+                                      file_name)
+        elif config['use_subregions']:
+            if metrics_name == 'Timeseries_plot_subregion_interannual_variability' and average_each_year:
+                row, column = plot_info['subplots_array']
+                Time_series_subregion(ref_subregion_mean, ref_name, model_subregion_mean, model_names, False,
+                                      file_name, row, column, x_tick=['Y'+str(i+1) for i in np.arange(model_subregion_mean.shape[1])])
+            if metrics_name == 'Timeseries_plot_subregion_annual_cycle' and not average_each_year and month_start==1 and month_end==12:
+                row, column = plot_info['subplots_array']
+                Time_series_subregion(ref_subregion_mean, ref_name, model_subregion_mean, model_names, True,
+                                      file_name, row, column, x_tick=['J','F','M','A','M','J','J','A','S','O','N','D'])
+            if metrics_name == 'Portrait_diagram_subregion_interannual_variability' and average_each_year:
+                Portrait_diagram_subregion(ref_subregion_mean, ref_name, model_subregion_mean, model_names, False,
+                                      file_name)
+            if metrics_name == 'Portrait_diagram_subregion_annual_cycle' and not average_each_year and month_start==1 and month_end==12:
+                Portrait_diagram_subregion(ref_subregion_mean, ref_name, model_subregion_mean, model_names, True,
+                                      file_name)
+        else:
+            print 'please check the currently supported metrics'
+
+

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/RCMES/statistical_downscaling/MPI_tas_JJA.yaml
----------------------------------------------------------------------
diff --git a/RCMES/statistical_downscaling/MPI_tas_JJA.yaml b/RCMES/statistical_downscaling/MPI_tas_JJA.yaml
new file mode 100644
index 0000000..17a12a7
--- /dev/null
+++ b/RCMES/statistical_downscaling/MPI_tas_JJA.yaml
@@ -0,0 +1,29 @@
+case_name: MPI_tas_JJA
+
+# downscaling method (1: delta addition, 2: Delta correction, 3: quantile mapping, 4: asynchronous regression)
+downscaling_option: 4
+
+# longitude (-180 ~ 180) and latitude (-90 ~ 90) of the grid point to downscale model output [in degrees]
+location:
+    name: HoChiMinh_City 
+    grid_lat: 10.75    
+    grid_lon: 106.67   
+
+# Season (for December - February, month_start=12 & month_end =2; for June - August, month_start=6 & month_end = 8)
+month_index: !!python/tuple [6,7,8]
+
+# reference (observation) data
+reference:
+    data_source: local
+    data_name: CRU
+    path: ./data/observation/tas_cru_monthly_1981-2010.nc
+    variable: tas
+
+model:
+    data_name: MPI
+    variable: tas
+    present:
+        path: ./data/model_present/tas_Amon_MPI_decadal1980_198101-201012.nc
+    future:
+        scenario_name: RCP8.5_2041-70
+        path: ./data/model_rcp85/tas_Amon_MPI_rcp85_204101-207012.nc 

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/RCMES/statistical_downscaling/run_statistical_downscaling.py
----------------------------------------------------------------------
diff --git a/RCMES/statistical_downscaling/run_statistical_downscaling.py b/RCMES/statistical_downscaling/run_statistical_downscaling.py
new file mode 100644
index 0000000..60c6ac2
--- /dev/null
+++ b/RCMES/statistical_downscaling/run_statistical_downscaling.py
@@ -0,0 +1,231 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+import datetime
+import yaml
+import os
+import sys
+import xlwt
+
+import numpy as np
+import numpy.ma as ma
+
+import ocw.data_source.local as local
+import ocw.dataset as ds
+import ocw.dataset_processor as dsp
+import ocw.statistical_downscaling as down
+import ocw.plotter as plotter
+
+import ssl
+
+def spatial_aggregation(target_dataset, lon_min, lon_max, lat_min, lat_max):
+    """ Spatially subset a dataset within the given longitude and latitude boundaryd_lon-grid_space, grid_lon+grid_space
+    :param target_dataset: Dataset object that needs spatial subsetting
+    :type target_dataset: Open Climate Workbench Dataset Object
+    :param lon_min: minimum longitude (western boundary)
+    :type lon_min: float
+    :param lon_max: maximum longitude (eastern boundary)
+    :type lon_min: float
+    :param lat_min: minimum latitude (southern boundary) 
+    :type lat_min: float
+    :param lat_min: maximum latitude (northern boundary) 
+    :type lat_min: float
+    :returns: A new spatially subset Dataset
+    :rtype: Open Climate Workbench Dataset Object
+    """
+
+    if target_dataset.lons.ndim == 1 and target_dataset.lats.ndim == 1:
+        new_lon, new_lat = np.meshgrid(target_dataset.lons, target_dataset.lats)
+    elif target_dataset.lons.ndim == 2 and target_dataset.lats.ndim == 2:
+        new_lon = target_datasets.lons
+        new_lat = target_datasets.lats
+ 
+    y_index, x_index = np.where((new_lon >= lon_min) & (new_lon <= lon_max) & (new_lat >= lat_min) & (new_lat <= lat_max))[0:2]
+
+    #new_dataset = ds.Dataset(target_dataset.lats[y_index.min():y_index.max()+1],
+    #                         target_dataset.lons[x_index.min():x_index.max()+1],
+    #                         target_dataset.times,
+    #                         target_dataset.values[:,y_index.min():y_index.max()+1,x_index.min():x_index.max()+1],
+    #                         target_dataset.variable,
+    #                         target_dataset.name) 
+    return target_dataset.values[:,y_index.min():y_index.max()+1,x_index.min():x_index.max()+1]
+
+def extract_data_at_nearest_grid_point(target_dataset, longitude, latitude):
+    """ Spatially subset a dataset within the given longitude and latitude boundaryd_lon-grid_space, grid_lon+grid_space
+    :param target_dataset: Dataset object that needs spatial subsetting
+    :type target_dataset: Open Climate Workbench Dataset Object
+    :type longitude: float
+    :param longitude: longitude
+    :type latitude: float
+    :param latitude: latitude 
+    :returns: A new spatially subset Dataset
+    :rtype: Open Climate Workbench Dataset Object
+    """
+
+    if target_dataset.lons.ndim == 1 and target_dataset.lats.ndim == 1:
+        new_lon, new_lat = np.meshgrid(target_dataset.lons, target_dataset.lats)
+    elif target_dataset.lons.ndim == 2 and target_dataset.lats.ndim == 2:
+        new_lon = target_datasets.lons
+        new_lat = target_datasets.lats
+    distance = (new_lon - longitude)**2. + (new_lat - latitude)**2.
+    y_index, x_index = np.where(distance == np.min(distance))[0:2]
+
+    return target_dataset.values[:,y_index[0], x_index[0]]
+
+if hasattr(ssl, '_create_unverified_context'):
+  ssl._create_default_https_context = ssl._create_unverified_context
+
+config_file = str(sys.argv[1])
+
+print 'Reading the configuration file ', config_file
+
+config = yaml.load(open(config_file))
+
+case_name = config['case_name']
+
+downscale_option_names = [' ','delta_addition','delta_correction','quantile_mapping','asynchronous_regression']
+DOWNSCALE_OPTION = config['downscaling_option']
+
+location = config['location']
+grid_lat = location['grid_lat']
+grid_lon = location['grid_lon']
+
+month_index = config['month_index']
+month_start = month_index[0]
+month_end = month_index[-1]    
+
+ref_info = config['reference']
+model_info = config['model']
+
+# Filename for the output data/plot (without file extension)
+OUTPUT = "%s_%s_%s_%s_%s" %(location['name'], ref_info['variable'], model_info['data_name'], ref_info['data_name'],model_info['future']['scenario_name'])
+
+print("Processing "+ ref_info['data_name'] + "  data")
+""" Step 1: Load Local NetCDF Files into OCW Dataset Objects """
+
+print("Loading %s into an OCW Dataset Object" % (ref_info['path'],))
+ref_dataset = local.load_file(ref_info['path'], ref_info['variable'])
+print(ref_info['data_name'] +" values shape: (times, lats, lons) - %s \n" % (ref_dataset.values.shape,))
+
+print("Loading %s into an OCW Dataset Object" % (model_info['present']['path'],))
+model_dataset_present = local.load_file(model_info['present']['path'], model_info['variable'])
+print(model_info['data_name'] +" values shape: (times, lats, lons) - %s \n" % (model_dataset_present.values.shape,))
+dy = model_dataset_present.spatial_resolution()[0]
+dx = model_dataset_present.spatial_resolution()[1]
+
+model_dataset_future = local.load_file(model_info['future']['path'], model_info['variable'])
+print(model_info['future']['scenario_name']+':'+model_info['data_name'] +" values shape: (times, lats, lons) - %s \n" % (model_dataset_future.values.shape,))
+
+""" Step 2: Temporal subsetting """
+print("Temporal subsetting for the selected month(s)")
+ref_temporal_subset = dsp.temporal_subset(month_start, month_end, ref_dataset)
+model_temporal_subset_present = dsp.temporal_subset(month_start, month_end, model_dataset_present)
+model_temporal_subset_future = dsp.temporal_subset(month_start, month_end, model_dataset_future)
+
+""" Step 3: Spatial aggregation of observational data into the model grid """
+print("Spatial aggregation of observational data near latitude %0.2f and longitude %0.2f " % (grid_lat, grid_lon))
+# There are two options to aggregate observational data near a model grid point
+#ref_subset = spatial_aggregation(ref_temporal_subset, grid_lon-0.5*dx, grid_lon+0.5*dx, grid_lat-0.5*dy, grid_lat+0.5*dy)
+#model_subset_present = spatial_aggregation(model_temporal_subset_present, grid_lon-0.5*dx, grid_lon+0.5*dx, grid_lat-0.5*dy, grid_lat+0.5*dy)
+#model_subset_future = spatial_aggregation(model_temporal_subset_future, grid_lon-0.5*dx, grid_lon+0.5*dx, grid_lat-0.5*dy, grid_lat+0.5*dy)
+ref_subset = extract_data_at_nearest_grid_point(ref_temporal_subset, grid_lon, grid_lat)
+model_subset_present = extract_data_at_nearest_grid_point(model_temporal_subset_present, grid_lon, grid_lat)
+model_subset_future = extract_data_at_nearest_grid_point(model_temporal_subset_future, grid_lon, grid_lat)
+
+
+""" Step 4:  Create a statistical downscaling object and downscaling model output """
+# You can add other methods
+print("Creating a statistical downscaling object")
+
+downscale = down.Downscaling(ref_subset, model_subset_present, model_subset_future)
+
+print(downscale_option_names[DOWNSCALE_OPTION]+": Downscaling model output")
+
+if DOWNSCALE_OPTION == 1:
+    downscaled_model_present, downscaled_model_future = downscale.Delta_addition()
+elif DOWNSCALE_OPTION == 2:
+    downscaled_model_present, downscaled_model_future = downscale.Delta_correction()
+elif DOWNSCALE_OPTION == 3:
+    downscaled_model_present, downscaled_model_future = downscale.Quantile_mapping()
+elif DOWNSCALE_OPTION == 4:
+    downscaled_model_present, downscaled_model_future = downscale.Asynchronous_regression()
+else:
+    sys.exit("DOWNSCALE_OPTION must be an integer between 1 and 4")
+
+
+""" Step 5: Create plots and spreadsheet """
+print("Plotting results")
+if not os.path.exists(case_name):
+    os.system("mkdir "+case_name)
+os.chdir(os.getcwd()+"/"+case_name)
+
+plotter.draw_marker_on_map(grid_lat, grid_lon, fname='downscaling_location', location_name=config['location']['name'])
+
+plotter.draw_histogram([ref_subset.ravel(), model_subset_present.ravel(), model_subset_future.ravel()], 
+                       data_names = [ref_info['data_name'], model_info['data_name'], model_info['future']['scenario_name']],
+                       fname=OUTPUT+'_original')
+                        
+plotter.draw_histogram([ref_subset.ravel(), downscaled_model_present, downscaled_model_future], 
+                       data_names = [ref_info['data_name'], model_info['data_name'], model_info['future']['scenario_name']],
+                       fname=OUTPUT+'_downscaled_using_'+downscale_option_names[DOWNSCALE_OPTION])
+
+print("Generating spreadsheet")
+
+workbook = xlwt.Workbook()
+sheet = workbook.add_sheet(downscale_option_names[config['downscaling_option']])
+
+sheet.write(0, 0, config['location']['name'])
+sheet.write(0, 2, 'longitude')
+sheet.write(0, 4, 'latitude')
+sheet.write(0, 6, 'month')
+
+
+sheet.write(0, 3, grid_lon)
+sheet.write(0, 5, grid_lat)
+
+
+
+for imonth,month in enumerate(month_index):
+    sheet.write(0, 7+imonth, month)
+
+sheet.write(3, 1, 'observation')
+sheet.write(4, 1, ref_info['data_name'])
+for idata, data in enumerate(ref_subset.ravel()[~ref_subset.ravel().mask]):
+    sheet.write(5+idata,1,data.item())
+
+sheet.write(3, 2, 'original')
+sheet.write(4, 2, model_info['data_name'])
+for idata, data in enumerate(model_subset_present.ravel()):
+    sheet.write(5+idata,2,data.item())
+
+sheet.write(3, 3, 'original')
+sheet.write(4, 3, model_info['future']['scenario_name'])
+for idata, data in enumerate(model_subset_future.ravel()):
+    sheet.write(5+idata,3,data.item())
+
+sheet.write(3, 4, 'downscaled')
+sheet.write(4, 4, model_info['data_name'])
+for idata, data in enumerate(downscaled_model_present):
+    sheet.write(5+idata,4,data.item())
+
+sheet.write(3, 5, 'downscaled')
+sheet.write(4, 5, model_info['future']['scenario_name'])
+for idata, data in enumerate(downscaled_model_future):
+    sheet.write(5+idata,5,data.item())
+
+workbook.save(OUTPUT+'.xls')
+

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/RCMES/test/test.py
----------------------------------------------------------------------
diff --git a/RCMES/test/test.py b/RCMES/test/test.py
new file mode 100644
index 0000000..beab16f
--- /dev/null
+++ b/RCMES/test/test.py
@@ -0,0 +1,179 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+import datetime
+import urllib
+from os import path
+
+import numpy as np
+
+import ocw.data_source.local as local
+import ocw.data_source.rcmed as rcmed
+from ocw.dataset import Bounds as Bounds
+import ocw.dataset_processor as dsp
+import ocw.evaluation as evaluation
+import ocw.metrics as metrics
+import ocw.plotter as plotter
+import ssl
+
+if hasattr(ssl, '_create_unverified_context'):
+  ssl._create_default_https_context = ssl._create_unverified_context
+
+# File URL leader
+FILE_LEADER = "http://zipper.jpl.nasa.gov/dist/"
+# This way we can easily adjust the time span of the retrievals
+YEARS = 3
+# Two Local Model Files 
+MODEL = "AFRICA_KNMI-RACMO2.2b_CTL_ERAINT_MM_50km_1989-2008_tasmax.nc"
+# Filename for the output image/plot (without file extension)
+OUTPUT_PLOT = "cru_31_tmax_knmi_africa_bias_full"
+
+# Download necessary NetCDF file if not present
+if path.exists(MODEL):
+    pass
+else:
+    urllib.urlretrieve(FILE_LEADER + MODEL, MODEL)
+
+""" Step 1: Load Local NetCDF File into OCW Dataset Objects """
+print("Loading %s into an OCW Dataset Object" % (MODEL,))
+knmi_dataset = local.load_file(MODEL, "tasmax")
+print("KNMI_Dataset.values shape: (times, lats, lons) - %s \n" % (knmi_dataset.values.shape,))
+
+""" Step 2: Fetch an OCW Dataset Object from the data_source.rcmed module """
+print("Working with the rcmed interface to get CRU3.1 Daily-Max Temp")
+metadata = rcmed.get_parameters_metadata()
+
+cru_31 = [m for m in metadata if m['parameter_id'] == "39"][0]
+
+""" The RCMED API uses the following function to query, subset and return the 
+raw data from the database:
+
+rcmed.parameter_dataset(dataset_id, parameter_id, min_lat, max_lat, min_lon, 
+                        max_lon, start_time, end_time)
+
+The first two required params are in the cru_31 variable we defined earlier
+"""
+# Must cast to int since the rcmed api requires ints
+dataset_id = int(cru_31['dataset_id'])
+parameter_id = int(cru_31['parameter_id'])
+
+print("We are going to use the Model to constrain the Spatial Domain")
+#  The spatial_boundaries() function returns the spatial extent of the dataset
+print("The KNMI_Dataset spatial bounds (min_lat, max_lat, min_lon, max_lon) are: \n"
+      "%s\n" % (knmi_dataset.spatial_boundaries(), ))
+print("The KNMI_Dataset spatial resolution (lat_resolution, lon_resolution) is: \n"
+      "%s\n\n" % (knmi_dataset.spatial_resolution(), ))
+min_lat, max_lat, min_lon, max_lon = knmi_dataset.spatial_boundaries()
+
+print("Calculating the Maximum Overlap in Time for the datasets")
+
+cru_start = datetime.datetime.strptime(cru_31['start_date'], "%Y-%m-%d")
+cru_end = datetime.datetime.strptime(cru_31['end_date'], "%Y-%m-%d")
+knmi_start, knmi_end = knmi_dataset.time_range()
+# Grab the Max Start Time
+start_time = max([cru_start, knmi_start])
+# Grab the Min End Time
+end_time = min([cru_end, knmi_end])
+print("Overlap computed to be: %s to %s" % (start_time.strftime("%Y-%m-%d"),
+                                          end_time.strftime("%Y-%m-%d")))
+print("We are going to grab the first %s year(s) of data" % YEARS)
+end_time = datetime.datetime(start_time.year + YEARS, start_time.month, start_time.day)
+print("Final Overlap is: %s to %s" % (start_time.strftime("%Y-%m-%d"),
+                                          end_time.strftime("%Y-%m-%d")))
+
+print("Fetching data from RCMED...")
+cru31_dataset = rcmed.parameter_dataset(dataset_id,
+                                        parameter_id,
+                                        min_lat,
+                                        max_lat,
+                                        min_lon,
+                                        max_lon,
+                                        start_time,
+                                        end_time)
+
+""" Step 3: Resample Datasets so they are the same shape """
+print("CRU31_Dataset.values shape: (times, lats, lons) - %s" % (cru31_dataset.values.shape,))
+print("KNMI_Dataset.values shape: (times, lats, lons) - %s" % (knmi_dataset.values.shape,))
+print("Our two datasets have a mis-match in time. We will subset on time to %s years\n" % YEARS)
+
+# Create a Bounds object to use for subsetting
+new_bounds = Bounds(min_lat, max_lat, min_lon, max_lon, start_time, end_time)
+knmi_dataset = dsp.subset(new_bounds, knmi_dataset)
+
+print("CRU31_Dataset.values shape: (times, lats, lons) - %s" % (cru31_dataset.values.shape,))
+print("KNMI_Dataset.values shape: (times, lats, lons) - %s \n" % (knmi_dataset.values.shape,))
+
+print("Temporally Rebinning the Datasets to a Single Timestep")
+# To run FULL temporal Rebinning use a timedelta > 366 days.  I used 999 in this example
+knmi_dataset = dsp.temporal_rebin(knmi_dataset, datetime.timedelta(days=999))
+cru31_dataset = dsp.temporal_rebin(cru31_dataset, datetime.timedelta(days=999))
+
+print("KNMI_Dataset.values shape: %s" % (knmi_dataset.values.shape,))
+print("CRU31_Dataset.values shape: %s \n\n" % (cru31_dataset.values.shape,))
+ 
+""" Spatially Regrid the Dataset Objects to a 1/2 degree grid """
+# Using the bounds we will create a new set of lats and lons on 0.5 degree step
+new_lons = np.arange(min_lon, max_lon, 0.5)
+new_lats = np.arange(min_lat, max_lat, 0.5)
+ 
+# Spatially regrid datasets using the new_lats, new_lons numpy arrays
+print("Spatially Regridding the KNMI_Dataset...")
+knmi_dataset = dsp.spatial_regrid(knmi_dataset, new_lats, new_lons)
+print("Spatially Regridding the CRU31_Dataset...")
+cru31_dataset = dsp.spatial_regrid(cru31_dataset, new_lats, new_lons)
+print("Final shape of the KNMI_Dataset:%s" % (knmi_dataset.values.shape, ))
+print("Final shape of the CRU31_Dataset:%s" % (cru31_dataset.values.shape, ))
+ 
+""" Step 4:  Build a Metric to use for Evaluation - Bias for this example """
+# You can build your own metrics, but OCW also ships with some common metrics
+print("Setting up a Bias metric to use for evaluation")
+bias = metrics.Bias()
+
+""" Step 5: Create an Evaluation Object using Datasets and our Metric """
+# The Evaluation Class Signature is:
+# Evaluation(reference, targets, metrics, subregions=None)
+# Evaluation can take in multiple targets and metrics, so we need to convert
+# our examples into Python lists.  Evaluation will iterate over the lists
+print("Making the Evaluation definition")
+bias_evaluation = evaluation.Evaluation(knmi_dataset, [cru31_dataset], [bias])
+print("Executing the Evaluation using the object's run() method")
+bias_evaluation.run()
+ 
+""" Step 6: Make a Plot from the Evaluation.results """
+# The Evaluation.results are a set of nested lists to support many different
+# possible Evaluation scenarios.
+#
+# The Evaluation results docs say:
+# The shape of results is (num_metrics, num_target_datasets) if no subregion
+# Accessing the actual results when we have used 1 metric and 1 dataset is
+# done this way:
+print("Accessing the Results of the Evaluation run")
+results = bias_evaluation.results[0][0,:]
+ 
+# From the bias output I want to make a Contour Map of the region
+print("Generating a contour map using ocw.plotter.draw_contour_map()")
+ 
+lats = new_lats
+lons = new_lons
+fname = OUTPUT_PLOT
+gridshape = (1, 1)  # Using a 1 x 1 since we have a single Bias for the full time range
+plot_title = "TASMAX Bias of KNMI Compared to CRU 3.1 (%s - %s)" % (start_time.strftime("%Y/%d/%m"), end_time.strftime("%Y/%d/%m"))
+sub_titles = ["Full Temporal Range"]
+ 
+plotter.draw_contour_map(results, lats, lons, fname,
+                         gridshape=gridshape, ptitle=plot_title, 
+                         subtitles=sub_titles)

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/examples/configuration_file_examples/NARCCAP_paper/Fig10_and_Fig11.yaml
----------------------------------------------------------------------
diff --git a/examples/configuration_file_examples/NARCCAP_paper/Fig10_and_Fig11.yaml b/examples/configuration_file_examples/NARCCAP_paper/Fig10_and_Fig11.yaml
deleted file mode 100644
index 0650e61..0000000
--- a/examples/configuration_file_examples/NARCCAP_paper/Fig10_and_Fig11.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-workdir: ./
-output_netcdf_filename: narccap_prec_monthly_1980-2003.nc
-
-# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
-time:
-    maximum_overlap_period: False
-    start_time: 1980-01-01
-    end_time: 2003-12-31
-    temporal_resolution: monthly
-    month_start: 1
-    month_end: 12
-    average_each_year: False
-
-space:
-    min_lat: 23.75
-    max_lat: 49.75
-    min_lon: -125.75
-    max_lon: -66.75
-
-regrid:
-    regrid_on_reference: False
-    regrid_dlat: 0.50
-    regrid_dlon: 0.50
-
-datasets:
-    reference:
-        data_source: rcmed
-        data_name: CRU
-        dataset_id: 10
-        parameter_id: 37
-
-    targets:
-        data_source: local
-        path: ../data/prec*ncep.monavg.nc                                                    
-        variable: prec    
-
-number_of_metrics_and_plots: 2
-
-metrics1: Timeseries_plot_subregion_annual_cycle
-
-plots1:
-    file_name: Fig10
-    subplots_array: !!python/tuple [7,2]
-
-metrics2: Portrait_diagram_subregion_annual_cycle                
-
-plots2:
-    file_name: Fig11
-
-use_subregions: True 
-
-subregions:
-#subregion name (R01, R02, R03,....) followed by an array of boundaries [south, north, west, east]
-    R01: 
-      [42.75, 49.75, -123.75, -120.25]
-    R02:
-      [42.75, 49.75, -119.75, -112.75]
-    R03:
-      [37.25, 42.25, -123.75, -117.75]
-    R04: 
-      [32.25, 37.25, -122.75, -114.75]
-    R05:
-      [31.25, 37.25, -113.75, -108.25]
-    R06:
-      [31.25, 37.25, -108.25, -99.75]
-    R07:
-      [37.25, 43.25, -110.25, -103.75]
-    R08: 
-      [45.25, 49.25, -99.75, -90.25]
-    R09: 
-      [34.75, 45.25, -99.75, -90.25]
-    R10: 
-      [29.75, 34.75, -95.75, -84.75]
-    R11: 
-      [38.25, 44.75, -89.75, -80.25]
-    R12: 
-      [38.25, 44.75, -79.75, -70.25]
-    R13: 
-      [30.75, 38.25, -83.75, -75.25]
-    R14: 
-      [24.25, 30.75, -83.75, -80.25]

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/examples/configuration_file_examples/NARCCAP_paper/Fig12_summer.yaml
----------------------------------------------------------------------
diff --git a/examples/configuration_file_examples/NARCCAP_paper/Fig12_summer.yaml b/examples/configuration_file_examples/NARCCAP_paper/Fig12_summer.yaml
deleted file mode 100644
index f11c136..0000000
--- a/examples/configuration_file_examples/NARCCAP_paper/Fig12_summer.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-workdir: ./
-output_netcdf_filename: narccap_prec_JJA_mean_1980-2003.nc
-
-# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
-time:
-    maximum_overlap_period: False
-    start_time: 1980-01-01
-    end_time: 2003-12-31
-    temporal_resolution: monthly
-    month_start: 6
-    month_end: 8
-    average_each_year: True
-
-space:
-    min_lat: 23.75
-    max_lat: 49.75
-    min_lon: -125.75
-    max_lon: -66.75
-
-regrid:
-    regrid_on_reference: False
-    regrid_dlat: 0.50
-    regrid_dlon: 0.50
-
-datasets:
-    reference:
-        data_source: rcmed
-        data_name: CRU
-        dataset_id: 10
-        parameter_id: 37
-
-    targets:
-        data_source: local
-        path: ../data/prec*ncep.monavg.nc                                                    
-        variable: prec    
-
-number_of_metrics_and_plots: 1
-
-metrics1: Portrait_diagram_subregion_interannual_variability
-
-plots1:
-    file_name: Fig12_summer
-
-use_subregions: True 
-
-subregions:
-#subregion name (R01, R02, R03,....) followed by an array of boundaries [south, north, west, east]
-    R01: 
-      [42.75, 49.75, -123.75, -120.25]
-    R02:
-      [42.75, 49.75, -119.75, -112.75]
-    R03:
-      [37.25, 42.25, -123.75, -117.75]
-    R04: 
-      [32.25, 37.25, -122.75, -114.75]
-    R05:
-      [31.25, 37.25, -113.75, -108.25]
-    R06:
-      [31.25, 37.25, -108.25, -99.75]
-    R07:
-      [37.25, 43.25, -110.25, -103.75]
-    R08: 
-      [45.25, 49.25, -99.75, -90.25]
-    R09: 
-      [34.75, 45.25, -99.75, -90.25]
-    R10: 
-      [29.75, 34.75, -95.75, -84.75]
-    R11: 
-      [38.25, 44.75, -89.75, -80.25]
-    R12: 
-      [38.25, 44.75, -79.75, -70.25]
-    R13: 
-      [30.75, 38.25, -83.75, -75.25]
-    R14: 
-      [24.25, 30.75, -83.75, -80.25]

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/examples/configuration_file_examples/NARCCAP_paper/Fig12_winter.yaml
----------------------------------------------------------------------
diff --git a/examples/configuration_file_examples/NARCCAP_paper/Fig12_winter.yaml b/examples/configuration_file_examples/NARCCAP_paper/Fig12_winter.yaml
deleted file mode 100644
index f1f0b1e..0000000
--- a/examples/configuration_file_examples/NARCCAP_paper/Fig12_winter.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-workdir: ./
-output_netcdf_filename: narccap_prec_DJF_mean_1980-2003.nc
-
-# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
-time:
-    maximum_overlap_period: False
-    start_time: 1980-01-01
-    end_time: 2003-12-31
-    temporal_resolution: monthly
-    month_start: 12
-    month_end: 2
-    average_each_year: True
-
-space:
-    min_lat: 23.75
-    max_lat: 49.75
-    min_lon: -125.75
-    max_lon: -66.75
-
-regrid:
-    regrid_on_reference: False
-    regrid_dlat: 0.50
-    regrid_dlon: 0.50
-
-datasets:
-    reference:
-        data_source: rcmed
-        data_name: CRU
-        dataset_id: 10
-        parameter_id: 37
-
-    targets:
-        data_source: local
-        path: ../data/prec*ncep.monavg.nc                                                    
-        variable: prec    
-
-number_of_metrics_and_plots: 1
-
-metrics1: Portrait_diagram_subregion_interannual_variability
-
-plots1:
-    file_name: Fig12_winter 
-
-use_subregions: True 
-
-subregions:
-#subregion name (R01, R02, R03,....) followed by an array of boundaries [south, north, west, east]
-    R01: 
-      [42.75, 49.75, -123.75, -120.25]
-    R02:
-      [42.75, 49.75, -119.75, -112.75]
-    R03:
-      [37.25, 42.25, -123.75, -117.75]
-    R04: 
-      [32.25, 37.25, -122.75, -114.75]
-    R05:
-      [31.25, 37.25, -113.75, -108.25]
-    R06:
-      [31.25, 37.25, -108.25, -99.75]
-    R07:
-      [37.25, 43.25, -110.25, -103.75]
-    R08: 
-      [45.25, 49.25, -99.75, -90.25]
-    R09: 
-      [34.75, 45.25, -99.75, -90.25]
-    R10: 
-      [29.75, 34.75, -95.75, -84.75]
-    R11: 
-      [38.25, 44.75, -89.75, -80.25]
-    R12: 
-      [38.25, 44.75, -79.75, -70.25]
-    R13: 
-      [30.75, 38.25, -83.75, -75.25]
-    R14: 
-      [24.25, 30.75, -83.75, -80.25]

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/examples/configuration_file_examples/NARCCAP_paper/Fig14_and_Fig15.yaml
----------------------------------------------------------------------
diff --git a/examples/configuration_file_examples/NARCCAP_paper/Fig14_and_Fig15.yaml b/examples/configuration_file_examples/NARCCAP_paper/Fig14_and_Fig15.yaml
deleted file mode 100644
index 5e01ce0..0000000
--- a/examples/configuration_file_examples/NARCCAP_paper/Fig14_and_Fig15.yaml
+++ /dev/null
@@ -1,82 +0,0 @@
-workdir: ./
-output_netcdf_filename: narccap_rsds_monthly_1984-2003.nc
-
-# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
-time:
-    maximum_overlap_period: False
-    start_time: 1984-01-01
-    end_time: 2003-12-31
-    temporal_resolution: monthly
-    month_start: 1
-    month_end: 12
-    average_each_year: False
-
-space:
-    min_lat: 23.75
-    max_lat: 49.75
-    min_lon: -125.75
-    max_lon: -66.75
-
-regrid:
-    regrid_on_reference: False
-    regrid_dlat: 0.50
-    regrid_dlon: 0.50
-
-datasets:
-    reference:
-        data_source: local
-        data_name: SRB
-        path: ../data/srb_rel3.0_shortwave_from_1983_to_2007.nc                           
-        variable: sw_sfc_dn
-  
-
-    targets:
-        data_source: local
-        path: ../data/rsds*ncep.monavg.nc                                                    
-        variable: rsds    
-
-number_of_metrics_and_plots: 2
-
-metrics1: Map_plot_bias_of_multiyear_climatology
-
-plots1:
-    file_name: Fig14
-    subplots_array: !!python/tuple [4,2]
-
-metrics2: Taylor_diagram_spatial_pattern_of_multiyear_climatology
-
-plots2:
-    file_name: Fig15
-
-use_subregions: False
-
-subregions:
-#subregion name (R01, R02, R03,....) followed by an array of boundaries [south, north, west, east]
-    R01: 
-      [42.75, 49.75, -123.75, -120.25]
-    R02:
-      [42.75, 49.75, -119.75, -112.75]
-    R03:
-      [37.25, 42.25, -123.75, -117.75]
-    R04: 
-      [32.25, 37.25, -122.75, -114.75]
-    R05:
-      [31.25, 37.25, -113.75, -108.25]
-    R06:
-      [31.25, 37.25, -108.25, -99.75]
-    R07:
-      [37.25, 43.25, -110.25, -103.75]
-    R08: 
-      [45.25, 49.25, -99.75, -90.25]
-    R09: 
-      [34.75, 45.25, -99.75, -90.25]
-    R10: 
-      [29.75, 34.75, -95.75, -84.75]
-    R11: 
-      [38.25, 44.75, -89.75, -80.25]
-    R12: 
-      [38.25, 44.75, -79.75, -70.25]
-    R13: 
-      [30.75, 38.25, -83.75, -75.25]
-    R14: 
-      [24.25, 30.75, -83.75, -80.25]

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/examples/configuration_file_examples/NARCCAP_paper/Fig16_summer.yaml
----------------------------------------------------------------------
diff --git a/examples/configuration_file_examples/NARCCAP_paper/Fig16_summer.yaml b/examples/configuration_file_examples/NARCCAP_paper/Fig16_summer.yaml
deleted file mode 100644
index db33eff..0000000
--- a/examples/configuration_file_examples/NARCCAP_paper/Fig16_summer.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-workdir: ./
-output_netcdf_filename: narccap_rsds_JJA_mean_1980-2003.nc
-
-# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
-time:
-    maximum_overlap_period: False
-    start_time: 1984-01-01
-    end_time: 2003-12-31
-    temporal_resolution: monthly
-    month_start: 6
-    month_end: 8
-    average_each_year: True
-
-space:
-    min_lat: 23.75
-    max_lat: 49.75
-    min_lon: -125.75
-    max_lon: -66.75
-
-regrid:
-    regrid_on_reference: False
-    regrid_dlat: 0.50
-    regrid_dlon: 0.50
-
-datasets:
-    reference:
-        data_source: local
-        data_name: SRB
-        path: ../data/srb_rel3.0_shortwave_from_1983_to_2007.nc
-        variable: sw_sfc_dn
-
-    targets:
-        data_source: local
-        path: ../data/rsds*ncep.monavg.nc                                                    
-        variable: rsds    
-
-number_of_metrics_and_plots: 1
-
-metrics1: Portrait_diagram_subregion_interannual_variability
-
-plots1:
-    file_name: Fig16_summer
-
-use_subregions: True 
-
-subregions:
-#subregion name (R01, R02, R03,....) followed by an array of boundaries [south, north, west, east]
-    R01: 
-      [42.75, 49.75, -123.75, -120.25]
-    R02:
-      [42.75, 49.75, -119.75, -112.75]
-    R03:
-      [37.25, 42.25, -123.75, -117.75]
-    R04: 
-      [32.25, 37.25, -122.75, -114.75]
-    R05:
-      [31.25, 37.25, -113.75, -108.25]
-    R06:
-      [31.25, 37.25, -108.25, -99.75]
-    R07:
-      [37.25, 43.25, -110.25, -103.75]
-    R08: 
-      [45.25, 49.25, -99.75, -90.25]
-    R09: 
-      [34.75, 45.25, -99.75, -90.25]
-    R10: 
-      [29.75, 34.75, -95.75, -84.75]
-    R11: 
-      [38.25, 44.75, -89.75, -80.25]
-    R12: 
-      [38.25, 44.75, -79.75, -70.25]
-    R13: 
-      [30.75, 38.25, -83.75, -75.25]
-    R14: 
-      [24.25, 30.75, -83.75, -80.25]

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/examples/configuration_file_examples/NARCCAP_paper/Fig16_winter.yaml
----------------------------------------------------------------------
diff --git a/examples/configuration_file_examples/NARCCAP_paper/Fig16_winter.yaml b/examples/configuration_file_examples/NARCCAP_paper/Fig16_winter.yaml
deleted file mode 100644
index e25a4b2..0000000
--- a/examples/configuration_file_examples/NARCCAP_paper/Fig16_winter.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-workdir: ./
-output_netcdf_filename: narccap_rsds_DJF_mean_1980-2003.nc
-
-# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
-time:
-    maximum_overlap_period: False
-    start_time: 1984-01-01
-    end_time: 2003-12-31
-    temporal_resolution: monthly
-    month_start: 12
-    month_end: 2
-    average_each_year: True
-
-space:
-    min_lat: 23.75
-    max_lat: 49.75
-    min_lon: -125.75
-    max_lon: -66.75
-
-regrid:
-    regrid_on_reference: False
-    regrid_dlat: 0.50
-    regrid_dlon: 0.50
-
-datasets:
-    reference:
-        data_source: local
-        data_name: SRB
-        path: ../data/srb_rel3.0_shortwave_from_1983_to_2007.nc
-        variable: sw_sfc_dn
-
-    targets:
-        data_source: local
-        path: ../data/rsds*ncep.monavg.nc                                                    
-        variable: rsds    
-
-number_of_metrics_and_plots: 1
-
-metrics1: Portrait_diagram_subregion_interannual_variability
-
-plots1:
-    file_name: Fig16_winter
-
-use_subregions: True 
-
-subregions:
-#subregion name (R01, R02, R03,....) followed by an array of boundaries [south, north, west, east]
-    R01: 
-      [42.75, 49.75, -123.75, -120.25]
-    R02:
-      [42.75, 49.75, -119.75, -112.75]
-    R03:
-      [37.25, 42.25, -123.75, -117.75]
-    R04: 
-      [32.25, 37.25, -122.75, -114.75]
-    R05:
-      [31.25, 37.25, -113.75, -108.25]
-    R06:
-      [31.25, 37.25, -108.25, -99.75]
-    R07:
-      [37.25, 43.25, -110.25, -103.75]
-    R08: 
-      [45.25, 49.25, -99.75, -90.25]
-    R09: 
-      [34.75, 45.25, -99.75, -90.25]
-    R10: 
-      [29.75, 34.75, -95.75, -84.75]
-    R11: 
-      [38.25, 44.75, -89.75, -80.25]
-    R12: 
-      [38.25, 44.75, -79.75, -70.25]
-    R13: 
-      [30.75, 38.25, -83.75, -75.25]
-    R14: 
-      [24.25, 30.75, -83.75, -80.25]

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/examples/configuration_file_examples/NARCCAP_paper/Fig5_and_Fig6.yaml
----------------------------------------------------------------------
diff --git a/examples/configuration_file_examples/NARCCAP_paper/Fig5_and_Fig6.yaml b/examples/configuration_file_examples/NARCCAP_paper/Fig5_and_Fig6.yaml
deleted file mode 100644
index ef7cc9c..0000000
--- a/examples/configuration_file_examples/NARCCAP_paper/Fig5_and_Fig6.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-workdir: ./                                      
-output_netcdf_filename: narccap_tas_annual_mean_1980-2003.nc
-
-# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
-time:
-    maximum_overlap_period: False
-    start_time: 1980-01-01
-    end_time: 2003-12-31
-    temporal_resolution: monthly
-    month_start: 1
-    month_end: 12
-    average_each_year: True  
-
-space:
-    min_lat: 23.75
-    max_lat: 49.75
-    min_lon: -125.75
-    max_lon: -66.75
-
-regrid:
-    regrid_on_reference: False
-    regrid_dlat: 0.50
-    regrid_dlon: 0.50
-
-datasets:
-    reference:
-        data_source: rcmed
-        data_name: CRU
-        dataset_id: 10
-        parameter_id: 38
-
-    targets:
-        data_source: local
-        path: ../data/temp.*ncep.monavg.nc                                                    
-        variable: temp    
-
-number_of_metrics_and_plots: 2
-
-metrics1: Map_plot_bias_of_multiyear_climatology
-
-plots1:
-    file_name: Fig5
-    subplots_array: !!python/tuple [4,2]
-
-metrics2: Taylor_diagram_spatial_pattern_of_multiyear_climatology
-
-plots2:
-    file_name: Fig6
-
-use_subregions: False

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/examples/configuration_file_examples/NARCCAP_paper/Fig7_summer.yaml
----------------------------------------------------------------------
diff --git a/examples/configuration_file_examples/NARCCAP_paper/Fig7_summer.yaml b/examples/configuration_file_examples/NARCCAP_paper/Fig7_summer.yaml
deleted file mode 100644
index ddbce3b..0000000
--- a/examples/configuration_file_examples/NARCCAP_paper/Fig7_summer.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-workdir: ./
-output_netcdf_filename: narccap_tas_JJA_mean_1980-2003.nc
-
-# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
-time:
-    maximum_overlap_period: False
-    start_time: 1980-01-01
-    end_time: 2003-12-31
-    temporal_resolution: monthly
-    month_start: 6
-    month_end: 8
-    average_each_year: True
-
-space:
-    min_lat: 23.75
-    max_lat: 49.75
-    min_lon: -125.75
-    max_lon: -66.75
-
-regrid:
-    regrid_on_reference: False
-    regrid_dlat: 0.50
-    regrid_dlon: 0.50
-
-datasets:
-    reference:
-        data_source: rcmed
-        data_name: CRU
-        dataset_id: 10
-        parameter_id: 38
-
-    targets:
-        data_source: local
-        path: ../data/temp*ncep.monavg.nc                                                    
-        variable: temp    
-
-number_of_metrics_and_plots: 1
-
-metrics1: Portrait_diagram_subregion_interannual_variability
-
-plots1:
-    file_name: Fig7_summer
-
-use_subregions: True 
-
-subregions:
-#subregion name (R01, R02, R03,....) followed by an array of boundaries [south, north, west, east]
-    R01: 
-      [42.75, 49.75, -123.75, -120.25]
-    R02:
-      [42.75, 49.75, -119.75, -112.75]
-    R03:
-      [37.25, 42.25, -123.75, -117.75]
-    R04: 
-      [32.25, 37.25, -122.75, -114.75]
-    R05:
-      [31.25, 37.25, -113.75, -108.25]
-    R06:
-      [31.25, 37.25, -108.25, -99.75]
-    R07:
-      [37.25, 43.25, -110.25, -103.75]
-    R08: 
-      [45.25, 49.25, -99.75, -90.25]
-    R09: 
-      [34.75, 45.25, -99.75, -90.25]
-    R10: 
-      [29.75, 34.75, -95.75, -84.75]
-    R11: 
-      [38.25, 44.75, -89.75, -80.25]
-    R12: 
-      [38.25, 44.75, -79.75, -70.25]
-    R13: 
-      [30.75, 38.25, -83.75, -75.25]
-    R14: 
-      [24.25, 30.75, -83.75, -80.25]

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/examples/configuration_file_examples/NARCCAP_paper/Fig7_winter.yaml
----------------------------------------------------------------------
diff --git a/examples/configuration_file_examples/NARCCAP_paper/Fig7_winter.yaml b/examples/configuration_file_examples/NARCCAP_paper/Fig7_winter.yaml
deleted file mode 100644
index 38add9b..0000000
--- a/examples/configuration_file_examples/NARCCAP_paper/Fig7_winter.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-workdir: ./
-output_netcdf_filename: narccap_tas_DJF_mean_1980-2003.nc
-
-# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
-time:
-    maximum_overlap_period: False
-    start_time: 1980-01-01
-    end_time: 2003-12-31
-    temporal_resolution: monthly
-    month_start: 12
-    month_end: 2
-    average_each_year: True
-
-space:
-    min_lat: 23.75
-    max_lat: 49.75
-    min_lon: -125.75
-    max_lon: -66.75
-
-regrid:
-    regrid_on_reference: False
-    regrid_dlat: 0.50
-    regrid_dlon: 0.50
-
-datasets:
-    reference:
-        data_source: rcmed
-        data_name: CRU
-        dataset_id: 10
-        parameter_id: 38
-
-    targets:
-        data_source: local
-        path: ../data/temp*ncep.monavg.nc                                                    
-        variable: temp    
-
-number_of_metrics_and_plots: 1
-
-metrics1: Portrait_diagram_subregion_interannual_variability
-
-plots1:
-    file_name: Fig7_winter 
-
-use_subregions: True 
-
-subregions:
-#subregion name (R01, R02, R03,....) followed by an array of boundaries [south, north, west, east]
-    R01: 
-      [42.75, 49.75, -123.75, -120.25]
-    R02:
-      [42.75, 49.75, -119.75, -112.75]
-    R03:
-      [37.25, 42.25, -123.75, -117.75]
-    R04: 
-      [32.25, 37.25, -122.75, -114.75]
-    R05:
-      [31.25, 37.25, -113.75, -108.25]
-    R06:
-      [31.25, 37.25, -108.25, -99.75]
-    R07:
-      [37.25, 43.25, -110.25, -103.75]
-    R08: 
-      [45.25, 49.25, -99.75, -90.25]
-    R09: 
-      [34.75, 45.25, -99.75, -90.25]
-    R10: 
-      [29.75, 34.75, -95.75, -84.75]
-    R11: 
-      [38.25, 44.75, -89.75, -80.25]
-    R12: 
-      [38.25, 44.75, -79.75, -70.25]
-    R13: 
-      [30.75, 38.25, -83.75, -75.25]
-    R14: 
-      [24.25, 30.75, -83.75, -80.25]

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/examples/configuration_file_examples/NARCCAP_paper/Fig8_and_Fig9.yaml
----------------------------------------------------------------------
diff --git a/examples/configuration_file_examples/NARCCAP_paper/Fig8_and_Fig9.yaml b/examples/configuration_file_examples/NARCCAP_paper/Fig8_and_Fig9.yaml
deleted file mode 100644
index d25ecb6..0000000
--- a/examples/configuration_file_examples/NARCCAP_paper/Fig8_and_Fig9.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-workdir: ./                                      
-output_netcdf_filename: narccap_prec_annual_mean_1980-2003.nc
-
-# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
-time:
-    maximum_overlap_period: False
-    start_time: 1980-01-01
-    end_time: 2003-12-31
-    temporal_resolution: monthly
-    month_start: 1
-    month_end: 12
-    average_each_year: True  
-
-space:
-    min_lat: 23.75
-    max_lat: 49.75
-    min_lon: -125.75
-    max_lon: -66.75
-
-regrid:
-    regrid_on_reference: False
-    regrid_dlat: 0.50
-    regrid_dlon: 0.50
-
-datasets:
-    reference:
-        data_source: rcmed
-        data_name: CRU
-        dataset_id: 10
-        parameter_id: 37
-
-    targets:
-        data_source: local
-        path: ../data/prec.*ncep.monavg.nc                                                    
-        variable: prec    
-
-number_of_metrics_and_plots: 2
-
-metrics1: Map_plot_bias_of_multiyear_climatology
-
-plots1:
-    file_name: Fig8
-    subplots_array: !!python/tuple [4,2]
-
-metrics2: Taylor_diagram_spatial_pattern_of_multiyear_climatology
-
-plots2:
-    file_name: Fig9
-
-use_subregions: False

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/examples/configuration_file_examples/cmip5_SE_Asia_prec_DJF_mean_taylor_diagram_to_TRMM.yaml
----------------------------------------------------------------------
diff --git a/examples/configuration_file_examples/cmip5_SE_Asia_prec_DJF_mean_taylor_diagram_to_TRMM.yaml b/examples/configuration_file_examples/cmip5_SE_Asia_prec_DJF_mean_taylor_diagram_to_TRMM.yaml
deleted file mode 100644
index 276e744..0000000
--- a/examples/configuration_file_examples/cmip5_SE_Asia_prec_DJF_mean_taylor_diagram_to_TRMM.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-workdir: ./
-output_netcdf_filename: cmip5_SE_Asia_prec_DJF_1998-2010.nc
-
-# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
-time:
-    maximum_overlap_period: True  
-    start_time: 1981-01-01
-    end_time: 2010-12-31
-    temporal_resolution: monthly
-    month_start: 12
-    month_end: 2
-    average_each_year: False  
-
-space:
-    min_lat: -15.14
-    max_lat: 27.26
-    min_lon: 89.26  
-    max_lon: 146.96
-
-regrid:
-    regrid_on_reference: True  
-    regrid_dlat: 0.50
-    regrid_dlon: 0.50
-
-datasets:
-    reference:
-        data_source: rcmed
-        data_name: TRMM
-        dataset_id: 3
-        parameter_id: 36
-
-    targets:
-        data_source: local
-        path: ./data/pr_Amon*                                   
-        variable: pr    
-
-number_of_metrics_and_plots: 1
-
-metrics1: Taylor_diagram_spatial_pattern_of_multiyear_climatology
-
-plots1:
-    file_name: cmip5_SE_ASIA_prec_DJF_mean_taylor_diagram_to_TRMM
-
-use_subregions: False
-

http://git-wip-us.apache.org/repos/asf/climate/blob/c6c9dd1c/examples/configuration_file_examples/cordex-AF_tasmax_annual_mean_bias_to_cru.yaml
----------------------------------------------------------------------
diff --git a/examples/configuration_file_examples/cordex-AF_tasmax_annual_mean_bias_to_cru.yaml b/examples/configuration_file_examples/cordex-AF_tasmax_annual_mean_bias_to_cru.yaml
deleted file mode 100644
index b1bbb78..0000000
--- a/examples/configuration_file_examples/cordex-AF_tasmax_annual_mean_bias_to_cru.yaml
+++ /dev/null
@@ -1,46 +0,0 @@
-workdir: ./
-output_netcdf_filename: cordex-AF_CRU_taxmax_monthly_1990-2007.nc
-
-# (RCMES will temporally subset data between month_start and month_end. If average_each_year is True (False), seasonal mean in each year is (not) calculated and used for metrics calculation.)
-time:
-    maximum_overlap_period: True 
-    start_time: 1990-01-01
-    end_time: 2007-12-31
-    temporal_resolution: monthly
-    month_start: 1
-    month_end: 12
-    average_each_year: False
-
-space:
-    min_lat: -45.76
-    max_lat: 42.24
-    min_lon: -24.64
-    max_lon: 60.28
-
-regrid:
-    regrid_on_reference: False
-    regrid_dlat: 0.44
-    regrid_dlon: 0.44
-
-datasets:
-    reference:
-        data_source: rcmed
-        data_name: CRU
-        dataset_id: 10
-        parameter_id: 39
-
-    targets:
-        data_source: local
-        path: ./data/AFRICA*tasmax.nc                                                    
-        variable: tasmax  
-
-number_of_metrics_and_plots: 1
-
-metrics1: Map_plot_bias_of_multiyear_climatology
-
-plots1:
-    file_name: cordex-AF_tasmax_annual_mean_bias_to_cru
-    subplots_array: !!python/tuple [3,4] 
-
-use_subregions: False
-