docstr: Return a sequence describing the measurement columns needed by this module
  
  This call should return one element per image or object measurement
  made by the module during image set analysis. The element itself
  is a 3-tuple:
  first entry: either one of the predefined measurement categories,
               {"Image", "Experiment" or "Neighbors" or the name of one
               of the objects.}
  second entry: the measurement name (as would be used in a call
                to add_measurement)
  third entry: the column data type (for instance, "varchar(255)" or
               "float")
docstr_tok: ["Return","a","sequence","describing","the","measurement","columns","needed","by","this","module","This","call","should","return","one","element","per","image","or","object","measurement","made","by","the","module","during","image","set","analysis",".","The","element","itself","is","a","3-tuple",":","first","entry",":","either","one","of","the","predefined","measurement","categories",",","{","``","Image","''",",","``","Experiment","''","or","``","Neighbors","''","or","the","name","of","one","of","the","objects",".","}","second","entry",":","the","measurement","name","(","as","would","be","used","in","a","call","to","add_measurement",")","third","entry",":","the","column","data","type","(","for","instance",",","``","varchar","(","255",")","''","or","``","float","''",")"]
code: def get_measurement_columns(self, pipeline):
      """Return a sequence describing the measurement columns needed by this module
  
      This call should return one element per image or object measurement
      made by the module during image set analysis. The element itself
      is a 3-tuple:
      first entry: either one of the predefined measurement categories,
                   {"Image", "Experiment" or "Neighbors" or the name of one
                   of the objects.}
      second entry: the measurement name (as would be used in a call
                    to add_measurement)
      third entry: the column data type (for instance, "varchar(255)" or
                   "float")
      """
      return [
          (IMAGE, self.get_feature_name(F_ROWS), COLTYPE_INTEGER),
          (IMAGE, self.get_feature_name(F_COLUMNS), COLTYPE_INTEGER),
          (IMAGE, self.get_feature_name(F_X_SPACING), COLTYPE_FLOAT),
          (IMAGE, self.get_feature_name(F_Y_SPACING), COLTYPE_FLOAT),
          (
              IMAGE,
              self.get_feature_name(F_X_LOCATION_OF_LOWEST_X_SPOT),
              COLTYPE_FLOAT,
          ),
          (
              IMAGE,
              self.get_feature_name(F_Y_LOCATION_OF_LOWEST_Y_SPOT),
              COLTYPE_FLOAT,
          ),
      ]
  
imports: import logging
  import centrosome.cpmorphology
  import numpy
  from cellprofiler_core.constants.measurement import COLTYPE_FLOAT
  from cellprofiler_core.constants.measurement import COLTYPE_INTEGER
  from cellprofiler_core.constants.measurement import IMAGE
  from cellprofiler_core.image import Image
  from cellprofiler_core.module import Module
  from cellprofiler_core.setting import Binary
  from cellprofiler_core.setting import Coordinates
  from cellprofiler_core.setting import ValidationError
  from cellprofiler_core.setting.choice import Choice
  from cellprofiler_core.setting.subscriber import ImageSubscriber
  from cellprofiler_core.setting.subscriber import LabelSubscriber
  from cellprofiler_core.setting.text import GridName
  from cellprofiler_core.setting.text import ImageName
  from cellprofiler_core.setting.text import Integer
  from cellprofiler_core.utilities.grid import Grid
label_desc: Use image node_id 20 for calling the DefineGrid obj's underlying member method code with example usage: obj.get_measurement_columns(pipeline) and returns: list