/[thuban]/branches/WIP-pyshapelib-bramz/Thuban/Model/classgen.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/Thuban/Model/classgen.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1359 by jonathan, Wed Jul 2 10:51:49 2003 UTC revision 1425 by jonathan, Wed Jul 16 13:21:59 2003 UTC
# Line 26  def generate_singletons(_list, ramp): Line 26  def generate_singletons(_list, ramp):
26      The resulting classification will consist of one group for each      The resulting classification will consist of one group for each
27      item in _list whose properties ramp between 'prop1' and 'prop2'.      item in _list whose properties ramp between 'prop1' and 'prop2'.
28    
29      _list -- any object that implements the iterator interface      _list -- a list of values for each singleton
30    
31      ramp -- an object which implements the CustomRamp interface      ramp -- an object which implements the CustomRamp interface
32      """      """
# Line 35  def generate_singletons(_list, ramp): Line 35  def generate_singletons(_list, ramp):
35    
36      i = 0      i = 0
37      maxValue = float(len(_list) - 1)      maxValue = float(len(_list) - 1)
38        if maxValue < 1: maxValue = 1
39    
40      for value in _list:      for value in _list:
41          prop = ramp.GetProperties(i / maxValue)          prop = ramp.GetProperties(i / maxValue)
42          clazz.AppendGroup(ClassGroupSingleton(value, prop))          clazz.AppendGroup(ClassGroupSingleton(value, prop))
# Line 58  def generate_uniform_distribution(min, m Line 60  def generate_uniform_distribution(min, m
60    
61      end = "["      end = "["
62      maxValue = float(numGroups - 1)      maxValue = float(numGroups - 1)
63        if maxValue < 1: maxValue = 1
64    
65      for i in range(1, numGroups + 1):      for i in range(1, numGroups + 1):
66    
67          prop = ramp.GetProperties(float(i-1) / maxValue)          prop = ramp.GetProperties(float(i-1) / maxValue)
68    
69          if intStep:          if intStep:
70              cur_max = min + int(round((i * (max - min + 1)) / maxValue))              cur_max = min + int(round((i * (max - min + 1)) / float(numGroups)))
71          else:          else:
72              cur_max = min + (i * (max - min)) / maxValue              cur_max = min + (i * (max - min)) / float(numGroups)
73    
74          if i == numGroups:          if i == numGroups:
75              cur_max = max              cur_max = max
# Line 125  def generate_quantiles(_list, percents, Line 129  def generate_quantiles(_list, percents,
129              end = "]"              end = "]"
130    
131              maxValue = float(numGroups - 1)              maxValue = float(numGroups - 1)
132                if maxValue < 1: maxValue = 1
133              for (q, p) in quantiles[3]:              for (q, p) in quantiles[3]:
134    
135                  prop = ramp.GetProperties(float(i-1) / maxValue)                  prop = ramp.GetProperties(float(i-1) / maxValue)
# Line 189  def GenQuantiles0(_list, percents, ramp, Line 194  def GenQuantiles0(_list, percents, ramp,
194              end = "]"              end = "]"
195    
196              maxValue = float(numGroups - 1)              maxValue = float(numGroups - 1)
197                if maxValue < 1: maxValue = 1
198              for (q, p) in quantiles[3][1:]:              for (q, p) in quantiles[3][1:]:
199                  prop = ramp.GetProperties(float(i-1) / maxValue)                  prop = ramp.GetProperties(float(i-1) / maxValue)
200    
# Line 390  class CustomRamp: Line 396  class CustomRamp:
396    
397          newProps = ClassGroupProperties()          newProps = ClassGroupProperties()
398    
399          color1 = self.prop1.GetLineColor()          self.__SetProperty(self.prop1.GetLineColor(),
400          color2 = self.prop2.GetLineColor()                             self.prop2.GetLineColor(),
401                               index, newProps.SetLineColor)
402          self.__SetProperty(color1, color2, index, newProps.SetLineColor)          self.__SetProperty(self.prop1.GetFill(), self.prop2.GetFill(),
403          self.__SetProperty(color1, color2, index, newProps.SetFill)                             index, newProps.SetFill)
404    
405          w = (self.prop2.GetLineWidth() - self.prop1.GetLineWidth()) \          w = (self.prop2.GetLineWidth() - self.prop1.GetLineWidth()) \
406              * index \              * index \
407              + self.prop1.GetLineWidth()              + self.prop1.GetLineWidth()
   
408          newProps.SetLineWidth(int(round(w)))          newProps.SetLineWidth(int(round(w)))
409    
410          return newProps          return newProps
# Line 440  GreyRamp       = MonochromaticRamp(Color Line 445  GreyRamp       = MonochromaticRamp(Color
445  RedRamp        = MonochromaticRamp(Color(1, 1, 1),  Color(.8, 0, 0))  RedRamp        = MonochromaticRamp(Color(1, 1, 1),  Color(.8, 0, 0))
446  GreenRamp      = MonochromaticRamp(Color(1, 1, 1),  Color(0, .8, 0))  GreenRamp      = MonochromaticRamp(Color(1, 1, 1),  Color(0, .8, 0))
447  BlueRamp       = MonochromaticRamp(Color(1, 1, 1),  Color(0, 0, .8))  BlueRamp       = MonochromaticRamp(Color(1, 1, 1),  Color(0, 0, .8))
448  GreenToRedRamp = MonochromaticRamp(Color(1, .8, 1), Color(1, 0, 0))  GreenToRedRamp = MonochromaticRamp(Color(0, .8, 0), Color(1, 0, 0))
449    
450  class HotToColdRamp:  class HotToColdRamp:
451    
# Line 475  class HotToColdRamp: Line 480  class HotToColdRamp:
480    
481          return prop          return prop
482    
483    class FixedRamp:
484        """FixedRamp allows particular properties of a ramp to be
485        held constant over the ramp.
486        """
487    
488        def __init__(self, ramp, fixes):
489            """
490            ramp -- a source ramp to get the default properties
491    
492            fixes -- a tuple (lineColor, lineWidth, fillColor) such that
493                 if any item is not None, the appropriate property will
494                 be fixed to that item value.
495            """
496    
497            self.fixes = fixes
498            self.ramp = ramp
499    
500        def GetRamp(self):
501            return self
502    
503        def GetProperties(self, index):
504            props = self.ramp.GetProperties(index)
505            if self.fixes[0] is not None: props.SetLineColor(self.fixes[0])
506            if self.fixes[1] is not None: props.SetLineWidth(self.fixes[1])
507            if self.fixes[2] is not None: props.SetFill(self.fixes[2])
508    
509            return props

Legend:
Removed from v.1359  
changed lines
  Added in v.1425

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26