paleo_view_v1_2.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:PaleoView 作者: GlobalEcologyLab 项目源码 文件源码
def calculateColourSchemeBoundaries(self) :

        # Find minimum and maximum data values and colour scheme interval
        if self.map_colour_scheme == '90%_range' :
            data_5th_percentile = min(self.grid_plot_statistics['region']['percentile_5th'])
            data_95th_percentile = max(self.grid_plot_statistics['region']['percentile_95th'])
            scheme_interval = (data_95th_percentile - data_5th_percentile)/9
            data_min = data_5th_percentile - scheme_interval
            data_max = data_95th_percentile + scheme_interval

        else : # fixed_range

            # Resolve selected parameter/group codes
            parameter_group_code = self.parameter_group_selection_map[self.parameter_group_text.get()]
            parameter_code = self.parameter_via_group_selection_map[parameter_group_code][self.parameter_via_group_text[parameter_group_code].get()]

            # Select fixed colour scheme via parameter codes and delta settings
            if self.utilise_delta.get() :
                if self.delta_as_percent.get() and self.parameter_fixed_range_colour_scheme[parameter_group_code][parameter_code].has_key('%delta') :
                    fixed_range_colour_scheme = self.parameter_fixed_range_colour_scheme[parameter_group_code][parameter_code]['%delta']
                else :
                    fixed_range_colour_scheme = self.parameter_fixed_range_colour_scheme[parameter_group_code][parameter_code]['delta']
            else :
                fixed_range_colour_scheme = self.parameter_fixed_range_colour_scheme[parameter_group_code][parameter_code]['value']

            # Prioritise min/max then first/last boundaries, use statistical min/max when neither provided
            if fixed_range_colour_scheme['min'] != None :
                data_min = fixed_range_colour_scheme['min']
            elif fixed_range_colour_scheme['first_boundary'] != None :
                data_min = None
            else :
                data_min = min(self.grid_plot_statistics['region']['minimum'])
            if fixed_range_colour_scheme['max'] != None :
                data_max = fixed_range_colour_scheme['max']
            elif fixed_range_colour_scheme['last_boundary'] != None :
                data_max = None
            else :
                data_max = max(self.grid_plot_statistics['region']['maximum'])

            # Resolve scheme interval and unresolved min/max
            if data_min == None and data_max == None :
                scheme_interval = (fixed_range_colour_scheme['last_boundary'] - fixed_range_colour_scheme['first_boundary'])/9.0
                data_min = fixed_range_colour_scheme['first_boundary'] - scheme_interval
                data_max = fixed_range_colour_scheme['last_boundary'] + scheme_interval
            elif data_min == None :
                scheme_interval = (data_max - fixed_range_colour_scheme['first_boundary'])/10.0
                data_min = fixed_range_colour_scheme['first_boundary'] - scheme_interval
            elif data_max == None :
                scheme_interval = (fixed_range_colour_scheme['last_boundary'] - data_min)/10.0
                data_max = fixed_range_colour_scheme['last_boundary'] + scheme_interval
            else :
                scheme_interval = (data_max - data_min)/11.0

        # Return colour scheme boundary values
        if scheme_interval :
            return np.arange(data_min, data_max+0.1*scheme_interval, scheme_interval)
        else :
            return np.arange(data_min-1.0, data_max+1.2, 0.2)

    # Shared Method: Adjust Colour Scheme Zero Boundaries (used in menu colour edit and grid plot methods)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号