

First, use spy.search to find the batches of interest: results = spy.search().reset_index() # add index for source-target pair sourceTargetDf = sourceTargetDf.apply(lambda x: labelList.index(x)) sourceTargetDf = sourceTargetDf.apply(lambda x: labelList.index(x)) # creating the sankey diagram data = dict( type='sankey', node = dict( pad = 15, thickness = 20, line = dict( color = "black", width = 0.5 ), label = labelList, color = colorList ), link = dict( source = sourceTargetDf, target = sourceTargetDf, value = sourceTargetDf ) ) layout = dict( title = title, font = dict( size = 10 ) ) fig = dict(data=, layout=layout) return fig fig = genSankey(FinalDf,cat_cols=,value_cols='Count',title='Batch Genealogy') (fig, validate=False) In this particular scenario, we are looking at 6 distinct batch chemical transformations to get to the final product and we are tracking the key raw material as it goes through the process.ġ. This article will describe one approach to Batch Genealogy visualization in Seeq Data Lab. Once the data is set up properly, visualization can be achieved with Seeq Data Lab.

The properties can either be set up from the datasource connector (such as bringing in OSIsoft PI Event Frames or information from a SQL database) or they can be built using transforms in Seeq Formula. In Seeq, these input material lot numbers or Batch IDs are tracked as properties attached to each Batch capsule. In the case of pharmaceuticals, batches that use that product may need to be pulled from the shelves immediately and not used by consumers.īatch Genealogy starts with having data in a format where the input material lot numbers or Batch IDs are tracked for each batch. When a deviation occurs in a raw material or batch, the use of that material in subsequent steps of the process needs to be quickly identified. In batch processes, genealogy of lots of batch IDs is important to understand.
