Example #1
0
    def igraph(self, where, table=None,
                 vx="Invnum_N", ed="Patent", order="AppYear",
                 va=", Lastname||', '||Firstname AS Name, City||'-'||State||'-'||Country AS Loc, Assignee, AsgNum",
                 ea=", a.AppYear AS AppYear", eg=', a.AppYear'):
        import math, datetime, senGraph
        if not table:
            table = self.tbl
        tab = senGraph.senTab()
        self.c.executescript("""
            DROP TABLE IF EXISTS G0;
            DROP TABLE IF EXISTS vx0;
            DROP TABLE IF EXISTS ed0;
            CREATE TEMP TABLE G0 AS
                SELECT * FROM %s WHERE %s ORDER BY %s;
            CREATE INDEX G_id ON G0 (%s);
            CREATE INDEX G_ed ON G0 (%s, %s);
            CREATE TEMPORARY TABLE vx0 AS
                SELECT %s, count(*) AS Patents %s FROM G0
                 GROUP BY %s;
            CREATE INDEX vx_id ON vx0 (%s);
            CREATE TEMPORARY TABLE ed0 AS
                SELECT  a.%s, b.%s, a.%s AS hId, b.%s AS tId, count(*) AS Weight %s
                  FROM  G0 AS a INNER JOIN G0 AS b
                    ON  a.%s=b.%s AND a.%s<b.%s
              GROUP BY  a.%s, b.%s %s;
            """ % (table, where, order, ed, vx, ed, vx, va, vx, vx,
                   vx, vx, vx, vx, ea, ed, ed, vx, vx, vx, vx, eg))

        tab.vList = self.c.execute("SELECT * FROM vx0").fetchall()
        tab.vlst = self.columns(table="vx0", output=False)[1:]
        tab.eList = self.c.execute("SELECT * FROM ed0").fetchall()
        tab.elst = self.columns(table="ed0", output=False)[2:]
        s = senGraph.senGraph(tab, "vertex")
        return s        
Example #2
0
    def igraph(self, where, table=None,
                 vx="Invnum_N", ed="Patent", order="AppYear",
                 va=", Lastname||', '||Firstname AS Name, City||'-'||State||'-'||Country AS Loc, Assignee, AsgNum",
                 ea=", a.AppYear AS AppYear", eg=', a.AppYear'):
        import math, datetime, senGraph
        if not table:
            table = self.tbl
        tab = senGraph.senTab()
        self.c.executescript("""
            DROP TABLE IF EXISTS G0;
            DROP TABLE IF EXISTS vx0;
            DROP TABLE IF EXISTS ed0;
            CREATE TEMP TABLE G0 AS
                SELECT * FROM %s WHERE %s ORDER BY %s;
            CREATE INDEX G_id ON G0 (%s);
            CREATE INDEX G_ed ON G0 (%s, %s);
            CREATE TEMPORARY TABLE vx0 AS
                SELECT %s, count(*) AS Patents %s FROM G0
                 GROUP BY %s;
            CREATE INDEX vx_id ON vx0 (%s);
            CREATE TEMPORARY TABLE ed0 AS
                SELECT  a.%s, b.%s, a.%s AS hId, b.%s AS tId, count(*) AS Weight %s
                  FROM  G0 AS a INNER JOIN G0 AS b
                    ON  a.%s=b.%s AND a.%s<b.%s
              GROUP BY  a.%s, b.%s %s;
            """ % (table, where, order, ed, vx, ed, vx, va, vx, vx,
                   vx, vx, vx, vx, ea, ed, ed, vx, vx, vx, vx, eg))

        tab.vList = self.c.execute("SELECT * FROM vx0").fetchall()
        tab.vlst = self.columns(table="vx0", output=False)[1:]
        tab.eList = self.c.execute("SELECT * FROM ed0").fetchall()
        tab.elst = self.columns(table="ed0", output=False)[2:]
        s = senGraph.senGraph(tab, "vertex")
        return s
Example #3
0
def map(req):
    random.seed(19820817)
    info = req.form
    x = senGraph.senDBMySQL(dbconfig=cfg, table="invpat")
    InvList = [info['inv']]
    Inv = x.nhood(InvList)
    x.graph(vertex_list=Inv, flag=InvList)

    sG = senGraph.senGraph(x.tab, varType='vertex')
    sG.g.vs["size"] = [math.log(x)*3+4 for x in sG.g.vs["cnt"]]
    sG.vs_color("AsgNum", dbl=True)

    sG.g.vs["layout"] = [[x["Lat"], x["Lng"]] for x in sG.g.vs]
    surface = cairo.ImageSurface (cairo.FORMAT_ARGB32, 200, 200)
    ctx = cairo.Context (surface)
    plot(sG.g, "/home/ron/web/py/img/1.png",
         layout=sG.g.vs["layout"],
         bbox=[200, 200],
         vertex_label="",
         vertex_layer=True,
         vertex_size2=[x['size']+5 for x in sG.g.vs()])

    image = cairo.ImageSurface.create_from_png ("/home/ron/web/py/img/1.png")
    ctx = cairo.Context (surface)
    ctx.set_source_surface (image, 0, 0)
    ctx.paint()
 
    s = StringIO()
    img = Image.frombuffer("RGBA", (surface.get_width(), surface.get_height()), surface.get_data(), "raw", "RGBA", 0, 1)
    s.seek(0)    
    req.content_type = 'image/png'
    img.save(req, 'png')
    return apache.OK
Example #4
0
    def network(self, InvNum):
        query = self.query
        category = self.category
        s = senGraph.senDBSQL()
        s.graph(vertex_list=s.nhood(InvNum), flag=InvNum, output="network.csv")
        sG = senGraph.senGraph(s.tab)
        sG.g.vs["size"] = [math.log(x)*3+4 for x in sG.g.vs["cnt"]]
        sG.vs_color("AsgNum", dbl=True)

        for x in InvNum:
            if x in sG.g.vs["Invnum_N"]:
                iG = sG.neighborhood([sG.g.vs["Invnum_N"].index(x)], 2)
                iG.g.vs["layout"] = iG.g.layout("FR")
                iG.json(output="%s.json" % x, vBool=["flag"], title="+2 degrees")
Example #5
0
def json_v0(req):
    random.seed(19820817)
    info = req.form
    x = senGraph.senDBMySQL(dbconfig=cfg, table="invpat")
    InvList = [info['inv']]
    Inv = x.nhood(InvList)

    x.graph(vertex_list=Inv, flag=InvList)
    sG = senGraph.senGraph(x.tab, varType='vertex')
    sG.g.vs["size"] = [math.log(x)*3+4 for x in sG.g.vs["cnt"]]
    sG.vs_color("AsgNum", dbl=True)
    sG.g.vs["layout"] = [[x["Lat"], x["Lng"]] for x in sG.g.vs]
    json = sG.json(output=None, vBool=["flag"], title="", scale=None)
    return json
Example #6
0
def json(req):
    random.seed(19820817)
    info = req.form
    x = senGraph.senDBMySQL(dbconfig=cfg, table="invpat")

    #x.graph(vertex_list=Inv, flag=InvList)

    Inv = []

    if "mode" not in info and "State" in info:
        info["mode"] = "congdist"

    if "mode" in info:
        if info["mode"] == "inventor":
            InvList = [info['inv']]
            Inv = x.nhood(InvList)
            where = None
            output = "/home/ron/web/py/sqlite/%s.s3" % info['inv']
        elif info["mode"] == "congdist":
            Inv = x.congdist(cd=(int)(info['CD']), state=info['State']);
            where = "a.CD=%d AND a.State='%s'" % ((int)(info['CD']), info['State'])
            output = "/home/ron/web/py/sqlite/%s%s.s3" % (info['State'], info['CD'])

    if len(Inv)>0:
        x.graph(vertex_list=Inv, where=where, output=output)
        sG = senGraph.senGraph(x.tab, varType='vertex')
        sG.g.vs["size"] = [math.log(x)*3+4 for x in sG.g.vs["cnt"]]
        sG.vs_color("AsgNum", dbl=True)
        sG.g.vs["layout"] = [[x["Lat"], x["Lng"]] for x in sG.g.vs]

        #year gets expanded
        if 'year' in info.keys():
            yr = info['year'].split('-')
            if len(yr)==1:
                yr.append(yr[0])
            sG.g = sG.g.vs.select(AppYear_ge=yr[0], AppYear_le=yr[1]).subgraph()

        #sG.g = sG.g.vs.select(AsgNum_eq="A000010088904").subgraph()


        json = sG.json(output=None, vBool=["flag"], title="", scale=None)
        return json
    else:
        return ""