示例#1
0
def mapfeature(index, shape, sf):
    # map individual features, returns Features
    sf_xrange = sf.bbox[2] - sf.bbox[0]
    sf_yrange = sf.bbox[3] - sf.bbox[1]

    ft = Feature()
    ft.id = index + 1
    if sf.shapeType == 1:
        (ptx, pty) = shape.points[0]
        sh_bbox = (ptx, pty, ptx, pty)
    else:
        sh_bbox = shape.bbox

    ft_xmin = ((sh_bbox[0] - sf.bbox[0]) / sf_xrange * 255.0)
    # not sure why this rounding is needed, but it is
    mod_xmin = (ft_xmin % 1 - .005) % 1 + int(ft_xmin)
    ft.xmin = int(floor(mod_xmin))
    if ft.xmin < 0: ft.xmin = 0

    ft_ymin = ((sh_bbox[1] - sf.bbox[1]) / sf_yrange * 255.0)
    mod_ymin = (ft_ymin % 1 - .005) % 1 + int(ft_ymin)
    ft.ymin = int(floor(mod_ymin))
    if ft.ymin < 0: ft.ymin = 0

    ft_xmax = ((sh_bbox[2] - sf.bbox[0]) / sf_xrange * 255.0)
    mod_xmax = (ft_xmax % 1 + .005) % 1 + int(ft_xmax)
    ft.xmax = int(ceil(mod_xmax))
    if ft.xmax > 255: ft.xmax = 255

    ft_ymax = ((sh_bbox[3] - sf.bbox[1]) / sf_yrange * 255.0)
    mod_ymax = (ft_ymax % 1 + .005) % 1 + int(ft_ymax)
    ft.ymax = int(ceil(mod_ymax))
    if ft.ymax > 255: ft.ymax = 255

    return ft
示例#2
0
文件: mapper.py 项目: pyzen/hasbeen
def mapfeature(index, shape, sf):
    # map individual features, returns Features
    sf_xrange = sf.bbox[2] - sf.bbox[0]
    sf_yrange = sf.bbox[3] - sf.bbox[1]

    ft = Feature()
    ft.id = index + 1
    if sf.shapeType == 1:
        (ptx, pty) = shape.points[0]
        sh_bbox = (ptx, pty, ptx, pty)
    else:
        sh_bbox = shape.bbox

    ft_xmin = (sh_bbox[0] - sf.bbox[0]) / sf_xrange * 255.0
    # not sure why this rounding is needed, but it is
    mod_xmin = (ft_xmin % 1 - 0.005) % 1 + int(ft_xmin)
    ft.xmin = int(floor(mod_xmin))
    if ft.xmin < 0:
        ft.xmin = 0

    ft_ymin = (sh_bbox[1] - sf.bbox[1]) / sf_yrange * 255.0
    mod_ymin = (ft_ymin % 1 - 0.005) % 1 + int(ft_ymin)
    ft.ymin = int(floor(mod_ymin))
    if ft.ymin < 0:
        ft.ymin = 0

    ft_xmax = (sh_bbox[2] - sf.bbox[0]) / sf_xrange * 255.0
    mod_xmax = (ft_xmax % 1 + 0.005) % 1 + int(ft_xmax)
    ft.xmax = int(ceil(mod_xmax))
    if ft.xmax > 255:
        ft.xmax = 255

    ft_ymax = (sh_bbox[3] - sf.bbox[1]) / sf_yrange * 255.0
    mod_ymax = (ft_ymax % 1 + 0.005) % 1 + int(ft_ymax)
    ft.ymax = int(ceil(mod_ymax))
    if ft.ymax > 255:
        ft.ymax = 255

    return ft
示例#3
0
                    #node.full = True
                    child.features = []
                    child.holdfeatures = []
                return


if __name__ == "__main__":

    t = Tree(4)

    for i in range(8):
        f = Feature()
        f.xmin = 120
        f.xmax = 130
        f.ymin = 120
        f.ymax = 130

        t.insert(f)

    f = Feature()
    f.xmin = 130
    f.xmax = 140
    f.ymin = 130
    f.ymax = 140

    t.insert(f)

    for node in t.nodes[1:]:
        hfl = len(node.holdfeatures)
        nfl = len(node.nodefeatures)
        print "%s: %s %s" % (node.id, nfl, hfl)
示例#4
0
                    child.features = []
                    child.holdfeatures = []
                return


                    
if __name__ == "__main__":

    t = Tree(4)

    for i in range(8):
        f = Feature()
        f.xmin = 120
        f.xmax = 130
        f.ymin = 120
        f.ymax = 130

        t.insert(f)

    f = Feature()
    f.xmin = 130
    f.xmax = 140
    f.ymin = 130
    f.ymax = 140

    t.insert(f)

    for node in t.nodes[1:]:
        hfl = len(node.holdfeatures)
        nfl = len(node.nodefeatures)
        print "%s: %s %s" % (node.id, nfl, hfl)