code: def get_proj(geom, proj_list=None):
      
      out_srs = None
      if proj_list is None:
          proj_list = gen_proj_list()
      #Go through user-defined projeciton list
      for projbox in proj_list:
          if projbox.geom.Intersects(geom):
              out_srs = projbox.srs
              break
      #If geom doesn't fall in any of the user projection bbox, use UTM
      if out_srs is None:
          out_srs = getUTMsrs(geom)
      return out_srs
docs: Determine best projection for input geometry