code: def change_points_geo_ref(self, points, points_geo_ref=None):
          
          import copy
  
          # remember if we got a list
          is_list = isinstance(points, list)
  
          points = ensure_numeric(points, num.float)
  
          # sanity checks
          if len(points.shape) == 1:
              #One point has been passed
              msg = 'Single point must have two elements'
              assert len(points) == 2, msg
              points = num.reshape(points, (1,2))
  
          msg = 'Points array must be two dimensional.\n'
          msg += 'I got %d dimensions' %len(points.shape)
          assert len(points.shape) == 2, msg
  
          msg = 'Input must be an N x 2 array or list of (x,y) values. '
          msg += 'I got an %d x %d array' %points.shape
          assert points.shape[1] == 2, msg
  
          # FIXME (Ole): Could also check if zone, xllcorner, yllcorner
          # are identical in the two geo refs.
          if points_geo_ref is not self:
              # If georeferences are different
              points = copy.copy(points) # Don't destroy input
              if not points_geo_ref is None:
                  # Convert points to absolute coordinates
                  points[:,0] += points_geo_ref.xllcorner
                  points[:,1] += points_geo_ref.yllcorner
  
              # Make points relative to primary geo reference
              points[:,0] -= self.xllcorner
              points[:,1] -= self.yllcorner
  
          if is_list:
              points = points.tolist()
  
          return points
docs: Change the geo reference of a list or numeric array of points to
          be this reference.(The reference used for this object)
          If the points do not have a geo ref, assume 'absolute' values